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 相关文章推荐
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python将字符串常量转化为变量方法总结
Mar 17 Python
python对象与json相互转换的方法
May 07 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
django 信号调度机制详解
Jul 19 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
简单了解为什么python函数后有多个括号
Dec 19 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 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 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP attributes()函数讲解
2019/02/03 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
Python标准异常和异常处理详解
2015/02/02 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python实现二维数组输出为图片
2018/04/03 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python之变量类型和if判断方式
2020/05/05 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
办公室副主任岗位职责
2013/11/25 职场文书
进口业务员岗位职责
2014/04/06 职场文书
高中生评语大全
2014/04/25 职场文书
预防煤气中毒方案
2014/06/16 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
详细介绍python操作RabbitMq
2022/04/12 Python
优化Mysql查询的示例
2022/04/26 MySQL
JavaScript设计模式之原型模式详情
2022/06/21 Javascript