当前位置:  编程技术>python

python 实现堆排序算法代码

    来源: 互联网  发布时间:2014-09-04

    本文导语:  代码如下: #!/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 ...

代码如下:

#!/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消息摘要算法使用示例
  • python 实现插入排序算法
  • python冒泡排序算法的实现代码
  • python实现排序算法
  • python选择排序算法的实现代码
  • python插入排序算法的实现代码
  • python算法学习之桶排序算法实例(分块排序)
  • python k-近邻算法实例分享
  • Python算法之栈(stack)的实现
  • python实现k均值算法示例(k均值聚类算法)
  • python 实现归并排序算法
  • python 算法 排序实现快速排序
  • 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
  • python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
  • python算法学习之计数排序实例
  • python实现simhash算法实例
  • python计数排序和基数排序算法实例
  • 爬山算法简介和Python实现实例
  • python实现的二叉树算法和kmp算法实例
  • python算法学习之基数排序实例
  • python字符串排序方法
  • Python实现冒泡,插入,选择排序简单实例
  • python字典多条件排序方法实例
  • python 快速排序代码
  • Python学习笔记_数据排序方法
  • python3.0 字典key排序
  • python快速排序代码实例
  • python中合并两个文本文件并按照姓名首字母排序的例子
  • Python中字典(dict)和列表(list)的排序方法实例
  • Python对两个有序列表进行合并和排序的例子
  • Python Trie树实现字典排序
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • python学习手册中的python多态示例代码
  • Python获取网页编码的方法及示例代码
  • 用python代码做configure文件
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 生成Python代码的UML插件 PyUML
  • python中的深拷贝(deepcopy)和浅拷贝(copy)介绍及代码参考
  • python 布尔操作实现代码
  • python下xml解析库lxml最新版下载安装以及代码示例
  • python代码制作configure文件示例
  • Python类的构造函数,析构函数以及垃圾回收机制详细介绍及代码举例
  • python判断端口是否打开的实现代码
  • python字符串格式化输出及相关操作代码举例
  • python类型强制转换long to int的代码
  • 数据结构:图(有向图,无向图),在Python中的表示和实现代码示例
  • python 简易计算器程序,代码就几行
  • 打开电脑上的QQ的python代码
  • python中使用urllib2获取http请求状态码的代码例子
  • 一则python3的简单爬虫代码
  • python 数据加密代码
  • Python实现3行代码解简单的一元一次方程
  • Python不使用print而直接输出二进制字符串
  • 让python同时兼容python2和python3的8个技巧分享
  • Python中实现json字符串和dict类型的互转
  • 使用setup.py安装python包和卸载python包的方法
  • mysql iis7站长之家
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • Python开发者社区整站源码 Pythoner
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • python读取csv文件示例(python操作csv)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3