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学习笔记 下载
Feb 10 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
深入浅出学习python装饰器
Sep 29 Python
Python反射的用法实例分析
Feb 11 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
PyTorch预训练的实现
Sep 18 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
python中os包的用法
Jun 01 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
Python常用模块介绍
2014/11/21 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
机关搬迁方案
2014/05/18 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2014年纠风工作总结
2014/12/08 职场文书
师德师风个人总结
2015/02/06 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
浅谈MySQL user权限表
2021/06/18 MySQL