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调用C++程序的方法详解
Jan 24 Python
详解python校验SQL脚本命名规则
Mar 22 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
python logging日志模块原理及操作解析
Oct 12 Python
Python SSL证书验证问题解决方案
Jan 13 Python
Python内置类型性能分析过程实例
Jan 29 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
详解python中的异常捕获
Dec 15 Python
python通过新建环境安装tfx的问题
May 20 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
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
获取python文件扩展名和文件名方法
2018/02/02 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android