1. #!/usr/bin/env python
  2. from heapq import heappush, heappop
  3. if __name__ == "__main__":
  4. # Simple sanity test
  5. heap = []
  6. data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
  7. for item in data:
  8. heappush(heap, item)
  9. sort = []
  10. while heap:
  11. sort.append(heappop(heap))
  12. print sort

一个heap要满足paren < leaf, root是最小的

heappush

1、append新的值在数组的结尾

2、再把结尾处的节点放到合适的位置,这个位置是通过跟heap里parent节点比较得来

      

heappop

1、把root(最小值)pop

2、把结尾节点的值insert到第一个root节点的位置

3、再调整这个root节点的位置,这个位置是通过跟heap里child节点比较得来