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中利用xml.dom模块解析xml的方法教程
May 24 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python基础之getpass模块详细介绍
Aug 10 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
Python面向对象程序设计示例小结
Jan 30 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
哪些是python中web开发框架
Jun 17 Python
python 使用tkinter+you-get实现视频下载器
Nov 17 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
SONY ICF-SW7600的电路分析
2021/03/02 无线电
文章推荐系统(二)
2006/10/09 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
中医专业职业生涯规划书范文
2014/01/04 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
初中信息技术教学计划
2015/01/22 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers