python 实现堆排序算法代码


Posted in Python onJune 05, 2012
#!/usr/bin/python 
import sys def left_child(node): 
return node * 2 + 1 
def right_child(node): 
return node * 2 + 2 
def parent(node): 
if (node % 2): 
return (i - 1) / 2 
else: 
return (i - 2) / 2 
def max_heapify(array, i, heap_size): 
l = left_child(i) 
r = right_child(i) 
largest = i 
if l < heap_size and array[l] > array[i]: 
largest = l 
if r < heap_size and array[r] > array[largest]: 
largest = r 
if largest != i: 
array[i], array[largest] = array[largest], array[i] 
max_heapify(array, largest, heap_size) 
def build_max_heap(array): 
for i in range(len(array) / 2, -1, -1): 
max_heapify(array, i, len(array)) 

def heap_sort(array): 
build_max_heap(array) 
for i in range(len(array) - 1, 0, -1): 
array[0], array[i] = array[i], array[0] 
max_heapify(array, 0, i) 

if __name__ == "__main__": 
array = [0, 2, 6, 98, 34, -5, 23, 11, 89, 100, 7] 
heap_sort(array) 
for a in array: 
sys.stdout.write("%d " % a)
Python 相关文章推荐
python中mechanize库的简单使用示例
Jan 10 Python
Python创建系统目录的方法
Mar 11 Python
Python实时获取cmd的输出
Dec 13 Python
Python实现简单多线程任务队列
Feb 27 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
Python学习笔记之While循环用法分析
Aug 14 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python学习之迭代器详解
Apr 01 Python
python 实现归并排序算法
Jun 05 #Python
python 实现插入排序算法
Jun 05 #Python
python 算法 排序实现快速排序
Jun 05 #Python
python操作MySQL数据库的方法分享
May 29 #Python
python利用elaphe制作二维条形码实现代码
May 25 #Python
用python实现批量重命名文件的代码
May 25 #Python
删除目录下相同文件的python代码(逐级优化)
May 25 #Python
You might like
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
javascript demo 基本技巧
2009/12/18 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python简单操作excle的方法
2018/09/12 Python
python pygame实现2048游戏
2018/11/20 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
python中count函数简单的实例讲解
2020/02/06 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
python如何处理程序无法打开
2020/06/16 Python
Python进行统计建模
2020/08/10 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
简历中个人求职的自我评价模板
2013/11/29 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
家长通知书家长评语
2014/04/17 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python