python实现堆排序算法代码
发布时间:2020-05-24 23:29:07 所属栏目:Python 来源:互联网
导读:python实现堆排序算法代码
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 #!/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:
largest = l
if r < heap_size and array[r] > array[largest]:
largest = r
if largest != i:
array,array[largest] = array[largest],array
max_heapify(array,largest,heap_size)
def build_max_heap(array):
for i in range(len(array) / 2,-1,-1):
max_heapify(array,len(array))
def heap_sort(array):
build_max_heap(array)
for i in range(len(array) - 1,-1):
array[0],array = array,array[0]
max_heapify(array,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)
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
