复制代码代码如下:
#!/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实现排序算法
python算法学习之计数排序实例
python算法学习之基数排序实例
python算法学习之桶排序算法实例(分块排序)
python冒泡排序算法的实现代码
python选择排序算法的实现代码
python插入排序算法的实现代码
python快速排序代码实例
python实现的各种排序算法代码
python 实现归并排序算法
python 算法 排序实现快速排序
python 快速排序代码
python3.0 字典key排序
Python学习笔记_数据排序方法
QQ空间 搜狐微博 人人网 开心网 百度搜藏更多
Tags:堆排序
复制链接收藏本文打印本文关闭本文返回首页
上一篇:python 实现归并排序算法
下一篇:windows下wxPython开发环境安装与配置方法
相关文章
2013-11-11pyramid配置session的方法教程
2013-09-09Python版的文曲星猜数字游戏代码
2014-04-04Python删除指定目录下过期文件的2个脚本分享
2014-02-02python缩进区别分析
2013-11-11python读取Android permission文件
2007-04-04python编程-将Python程序转化为可执行程序[整理]
2014-02-02Python操作列表的常用方法分享
2014-04-04python实现zencart产品数据导入到magento(python导入数据)
2013-04-04重命名批处理python脚本
2013-03-03python中关于时间和日期函数的常用计算总结(time和datatime)
文章评论
最 近 更 新
python基础入门详解(文件输入/输出 内建类
Python实现的金山快盘的签到程序
python中的yield使用方法
一个简单的python程序实例(通讯录)
python基础教程之基本内置数据类型介绍
Python删除指定目录下过期文件的2个脚本分
pycharm 使用心得(五)断点调试
python pickle 和 shelve模块的用法
python中的实例方法、静态方法、类方法、
python将xml xsl文件生成html文件存储示例
热 点 排 行
Python入门教程 超详细1小时学会
python 中文乱码问题深入分析
比较详细Python正则表达式操作指
Python字符串的encode与decode研
Python open读写文件实现脚本
Python enumerate遍历数组示例应
Python 深入理解yield
Python+Django在windows下的开发
python 文件和路径操作函数小结
python 字符串split的用法分享