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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
在Python的web框架中编写创建日志的程序的教程
Apr 30 Python
Python Django使用forms来实现评论功能
Aug 17 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
Python把图片转化为pdf代码实例
Jul 28 Python
pandas参数设置的实用小技巧
Aug 23 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
详解Python调用系统命令的六种方法
Jan 28 Python
详解python网络进程
Jun 15 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的PDF文档生成技术
2006/10/09 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
JavaScript File分段上传
2016/03/10 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
Python字符转换
2008/09/06 Python
python网络编程之文件下载实例分析
2015/05/20 Python
matplotlib中legend位置调整解析
2017/12/19 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
Python流程控制常用工具详解
2020/02/24 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
某同学的自我鉴定范文
2013/12/26 职场文书
销售主管竞聘书
2014/03/31 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
使用Python开发冰球小游戏
2022/04/30 Python