首页 > 编程语言 >python heapq 模块

python heapq 模块

时间:2023-12-14 23:33:07浏览次数:21  
标签:大根堆 heapq python 根堆 heappush 模块 print 小根堆

堆的概念

堆是用数组表示的二叉树,分为大根堆和小根堆:大根堆是堆顶元素最大的堆,小根堆是堆顶元素最小的堆

 堆的建立

堆用列表来表示。在往堆中加入元素时,在列表最后加入一个元素并与其父节点比较(n/2位置)看是否需要进行交换,然后层层比较直到根节点

python heapq

# 建立小根堆
        import heapq
        a = list()
        heapq.heappush(a, 18)
        heapq.heappush(a, 1)
        heapq.heappush(a, 20)
        heapq.heappush(a, 10)
        heapq.heappush(a, 5)
        heapq.heappush(a, 200)
        print(a)  #  [1, 5, 20, 18, 10, 200]
# 建立大根堆 - heapq默认建立的是小根堆,将数据取反建立小根堆,其实就是相当于原数据的大根堆(记得输出的时候也要取反)
        b = list()
        for i in a:
            heapq.heappush(b, -i)
        print(list(map(lambda x: -x, b)))
# 直接将列表转化成小根堆
        c = [18, 1, 20, 10, 5, 200]
        heapq.heapify(c)
        print(c)
# 直接将列表转化为大根堆
        c = [-i for i in c]
        heapq.heapify(c)
        c = [-i for i in c]
        print(c)
# heappop从堆中弹出并返回最小的值
        for i in range(len(a)):
            print(heapq.heappop(a))

 

标签:大根堆,heapq,python,根堆,heappush,模块,print,小根堆
From: https://www.cnblogs.com/mlllily/p/17902470.html

相关文章

  • 模块与包
    【一】模块模块(Module)是指包含了一组相关功能的代码集合,可以通过导入(import)的方式在其他程序中重复使用。在Python中,一个模块可以是一个包含了函数、类、变量和语句的.py文件。模块提供了一种组织和重用代码的方式,使得代码的编写、维护和理解都变得更加简单和高效。通过将相关......
  • 模块与包
    模块与包1.导入模块与包1.1import语法importxxx模块名#import语句无法加载到模块下面的变量名,他只能加载到模块名##import只能导入模块名#此时我在src包下的login_register.py模块中,我想引用add_bank模块内的方法importadd_bank#引用add_bank里的方法,需要加......
  • python: json
     fromtypingimportListimportjsonclassStudent(object):def__init__(self,first_name:str,last_name:str):self.first_name=first_nameself.last_name=last_name@propertydefFirstNmae(self):returnself.f......
  • Python从入门到实践project飞船射击外星人3
    完善记分系统1确保难度升级分值跟着升级2将分值显示为10的整数倍3显示最高分4显示等级5显示剩余飞船数确保难度升级分值跟着升级self.alien_points=int(self.alien_points*self.score_scale)print(self.alien_points)print确保分值变化,确保后删除将分值显示为10的整数倍......
  • 模块与包
    【模块】定义 使用方法(import文件名  使用) (from文件名 import 需要调用的东西) (formimport 案例) (包的定义) (yild生成器) (模块导入的优先级) ......
  • python虚拟环境(windows)
    venv虚拟环境,是Python用来创建和管理虚拟环境的模块,该模块供你用来存放你的各种python第三方模块,模块里的环境和本机是完全分开的,也就是说你在venv下通过pip安装的python第三方模块是不会影响到你本机的环境的。具体操作如下:1.先安装virtualenvpipinstallvirtualenv 2.进......
  • Python——了解Html+Css语言代码
    HTML(HyperTextMarkupLanguage超文本标记语言)用特殊的一种标签把需要特殊展示出来的内容圈起来。这就是标记语言语法规则<标记>被标记的内容</标记><标记/>巨大的坑。在以前2000年左右。那个时候语法规则不够规范。有些人写HTML的时候习惯性的漏掉括回文本:文字,字符串,符号。超......
  • 【python基础】颜色列表和颜色字典以及python画图
    前言 使用:list_keys=[iforiincnames.keys()]list_values=[iforiincnames.values()] 颜色列表示例:colormap=['#7A57D1','#FF731D','#004d61','#bc8420','#CF0A0A','#83FFE6','#0000A1',&#......
  • Python项目之ATM1.0多模块函数
    ATM1.0多模块【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流......
  • ubuntu 创建一个与系统 python 分离的 python 环境
    为什么需要这样的python环境以免破坏系统python避免和其他用户共用python让python环境私有如何创建这样的环境下载python安装包aptdownloadpython3.8-minimal如果系统提示没有对应的版本,可以试试将3.8修改为其他版本。如果有更好的方法,欢迎留言。下载完成......