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实现程序的单一实例用法分析
Jun 03 Python
Python入门教程之运算符与控制流
Aug 17 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
Python建立Map写Excel表实例解析
Jan 17 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
详解Python中第三方库Faker
Sep 25 Python
python cv2图像质量压缩的算法示例
Jun 04 Python
Django drf请求模块源码解析
Jun 08 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
浅谈js中的bind
2019/03/18 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python+django实现简单的文件上传
2016/08/17 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
迟到早退检讨书
2014/02/10 职场文书
大学生村官演讲稿
2014/04/25 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
爱国主义主题班会
2015/08/14 职场文书
小学运动会开幕词
2016/03/04 职场文书
创业计划书之酒吧
2019/12/02 职场文书