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 制作图片转pdf工具
Jan 30 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
Python中关于使用模块的基础知识
May 24 Python
Python上下文管理器和with块详解
Sep 09 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
用python批量移动文件
Jan 14 Python
Python 用户输入和while循环的操作
May 23 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
layUI实现三级导航菜单效果
2019/07/26 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
Python基于requests库爬取网站信息
2020/03/02 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
专职安全员岗位职责
2015/04/11 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
python 模块重载的五种方法
2021/04/24 Python
德生BCL3000抢先使用感受和评价
2022/04/07 无线电