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中的引用和拷贝浅析
Nov 22 Python
Python中的条件判断语句基础学习教程
Feb 07 Python
用python写的一个wordpress的采集程序
Feb 27 Python
python实现多线程的两种方式
May 22 Python
Python实现的购物车功能示例
Feb 11 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
Python程序暂停的正常处理方法
Nov 07 Python
Django静态资源部署404问题解决方案
May 11 Python
python:删除离群值操作(每一行为一类数据)
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
一个取得文件扩展名的函数
2006/10/09 PHP
如何写php程序?
2006/12/08 PHP
jquery isType() 类型判断代码
2011/02/14 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python中str.join()简单用法示例
2018/03/20 Python
Python get获取页面cookie代码实例
2018/09/12 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python里 super类的工作原理详解
2019/06/19 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
高一化学教学反思
2014/02/05 职场文书
大学毕业感言200字
2014/03/09 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
面试感谢信范文
2015/01/22 职场文书
安全教育第一课观后感
2015/06/17 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
Redis全局ID生成器的实现
2022/06/05 Redis