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中的死锁、可重入锁和互斥锁
Nov 05 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python多项式回归的实现方法
Mar 11 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
python实现126邮箱发送邮件
May 20 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
Python map及filter函数使用方法解析
Aug 06 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中array_multisort对多维数组排序的方法
2020/06/21 PHP
jQuery的三种$()
2009/12/30 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
js实现继承的5种方式
2015/12/01 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
angular实现IM聊天图片发送实例
2017/05/08 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python类的继承和多态代码详解
2017/12/27 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
统计员岗位职责
2013/11/14 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
团队激励口号
2014/06/06 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
教师求职自荐信
2015/03/26 职场文书
召开会议通知范文
2015/04/15 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers