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 24 Python
常用python数据类型转换函数总结
Mar 11 Python
使用Python生成随机密码的示例分享
Feb 18 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
python使用folium库绘制地图点击框
Sep 21 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
python django model联合主键的例子
Aug 06 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 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中文分词的简单实现代码分享
2011/07/17 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
PHP实现微信对账单处理
2018/10/01 PHP
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
基于python的字节编译详解
2017/09/20 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python中的常量和变量代码详解
2018/07/25 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python操作qml对象过程详解
2019/09/26 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
就业导师推荐信范文
2015/03/27 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
教师远程研修感悟
2015/11/18 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android