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 ljust rjust center输出
Sep 06 Python
python统计字符串中指定字符出现次数的方法
Apr 04 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
python requests抓取one推送文字和图片代码实例
Nov 04 Python
3种python调用其他脚本的方法
Jan 06 Python
python保留小数位的三种实现方法
Jan 07 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
中英文字符串翻转函数
2008/12/09 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
JavaScript中的对象化编程
2008/01/16 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
Node.js事件的正确使用方法
2019/04/05 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
实例讲解React 组件
2020/07/07 Javascript
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
python之文件读取一行一行的方法
2018/07/12 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
表决心的诗句大全
2014/03/11 职场文书
五心教育心得体会
2014/09/04 职场文书
批评与自我批评总结
2014/10/17 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Python面向对象之内置函数相关知识总结
2021/06/24 Python
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python