#!/usr/bin/env python
from heapq import heappush, heappop
if __name__ == "__main__":
# Simple sanity test
heap = []
data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
for item in data:
heappush(heap, item)
sort = []
while heap:
sort.append(heappop(heap))
print sort一个heap要满足paren < leaf, root是最小的
heappush
1、append新的值在数组的结尾
2、再把结尾处的节点放到合适的位置,这个位置是通过跟heap里parent节点比较得来
heappop
1、把root(最小值)pop
2、把结尾节点的值insert到第一个root节点的位置
3、再调整这个root节点的位置,这个位置是通过跟heap里child节点比较得来
本文介绍了一个使用Python实现的简单堆排序算法。通过heapq模块的heappush和heappop函数,可以轻松地将列表转换为堆,并进行排序。文章详细解释了如何将新元素插入堆中并保持堆的性质,以及如何从堆中移除最小元素。
441

被折叠的 条评论
为什么被折叠?



