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使用Berkeley DB数据库实例
Sep 26 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
Python笔记之工厂模式
Nov 20 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
python datetime时间格式的相互转换问题
Jun 11 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
python实现自动清理重复文件
Aug 24 Python
python打包多类型文件的操作方法
Sep 21 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
使用Django的JsonResponse返回数据的实现
Jan 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代码
2008/09/10 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
对python中dict和json的区别详解
2018/12/18 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
特步官方商城:Xtep
2017/03/21 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
团员的自我评价
2013/12/01 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
法律专业自荐信
2014/06/03 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers