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用fork来创建子进程注意事项
Jul 03 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
Python生成短uuid的方法实例详解
May 29 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python玩转PDF的各种骚操作
May 06 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Python itertools.product方法代码实例
Mar 27 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
pycharm导入源码的具体步骤
Aug 04 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
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
js实现点赞效果
2020/03/16 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
python 用下标截取字符串的实例
2018/12/25 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
python函数与方法的区别总结
2019/06/23 Python
python获取栅格点和面值的实现
2020/03/10 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
教师演讲稿范文
2014/01/08 职场文书
财务工作检讨书
2014/10/29 职场文书
死亡赔偿协议书
2015/01/28 职场文书
中秋节慰问信
2015/02/15 职场文书
歌舞青春观后感
2015/06/10 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
react antd实现动态增减表单
2021/06/03 Javascript
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript