python实现堆排序算法代码
发布时间:2020-12-17 17:27:59 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/python import sysdef left_child(node): return node * 2 + 1def right_child(node): return node * 2 + 2def parent(node): if (node %
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/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) 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |