常に最初の要素が最小値(あるいは最大値)となるようなリストが必要な場合、ヒープ構造を用いることで最小値(最大値)の取り出しをO(1)、要素の追加をO(log n)の時間計算量で行うことができる。 Pythonでヒープを扱う場合、heapqモジュールが使える。 import heapq a = [6, 3, 2, 4, 5] heapq.heapify(a) # 破壊的 print a[0] # => 2 heapq.heappop(a) # 最小値をヒープから取り出す print a[0] # => 3 heapq.heappush(a, 1) # ヒープに要素を追加する print a[0] # => 1 8.4. heapq — Heap queue algorithm — Python v2.7.4 documentation heapqは最初の要素が最小値となるようなヒープしか扱え