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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
合并百度影音的离线数据( with python 2.3)
Aug 04 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
python 读取文件并替换字段的实例
Jul 12 Python
numpy中的ndarray方法和属性详解
May 27 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python Process创建进程的2种方法详解
Jan 25 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
js电话号码验证方法
2015/09/28 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
python 获取网页编码方式实现代码
2017/03/11 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
如何使用python切换hosts文件
2020/04/29 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
机关党员公开承诺书
2014/08/30 职场文书
五年级下册复习计划
2015/01/19 职场文书
护士心得体会范文
2016/01/25 职场文书
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫