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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python输出9*9乘法表的方法
May 25 Python
python对象及面向对象技术详解
Jul 19 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
深入浅出学习python装饰器
Sep 29 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python3 log10()函数简单用法
Feb 19 Python
python3安装crypto出错及解决方法
Jul 30 Python
在python中做正态性检验示例
Dec 09 Python
python对execl 处理操作代码
Jun 22 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
如何用python绘制雷达图
Apr 24 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读取csv文件并输出的方法
2015/03/14 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
python读文件逐行处理的示例代码分享
2013/12/27 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python使用epoll实现服务端的方法
2018/10/16 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
python生成随机红包的实例写法
2019/09/02 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python列表推导式操作解析
2019/11/26 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
会计人员演讲稿
2014/09/11 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
MySQL中order by的使用详情
2021/11/17 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL