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 08 Python
Python中的rjust()方法使用详解
May 19 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
python单例模式的多种实现方法
Jul 26 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python绘制无向图度分布曲线示例
Nov 22 Python
Python爬取12306车次信息代码详解
Aug 12 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
使用Python解决图表与画布的间距问题
Apr 11 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 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php实现的用户查询类实例
2015/06/18 PHP
php类自动加载器实现方法
2015/07/28 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
浅谈js中的闭包
2015/03/16 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
python简单实现计算过期时间的方法
2015/06/09 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python3生成手写体数字方法
2018/01/30 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
详解Python sys.argv使用方法
2019/05/10 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python使用xpath实现图片爬取
2020/09/16 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
工商管理专业职业生涯规划
2014/01/01 职场文书
铁路工务反思材料
2014/02/07 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
停车位租赁协议书
2014/09/24 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
机关作风建设工作总结
2014/10/23 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android