Python Heapq
< heapq > hip機能用ライブラリ 複数のアルゴリズムにおいて優先キュー機能を実装する場合、 が使用され、複数の最短パスアルゴリズムが含まれる PriorityQueueライブラリは使用可能ですが、符号化テストでは通常heapqが速いです.
『Pythonからのヒップホップ』 は少なくとも臀部からなり、すべての元素を臀部に入れ、それを抜くだけでO(Nlogn) を得ることができる.は、通常、最小HIPデータ構造の最上位要素が常に最小であるため、 である. heapq.heappush():hipに要素を挿入する場合 heapq.heapppop():臀部から元素を取り出すとき Pythonは最大のHIPを提供しないため、 を使用して要素のコードを一時的に変更します. hipにエレメントを挿入する前に、シンボルを反転してからエレメントを取り出し、シンボル を再変換する.
『Pythonからのヒップホップ』
# heapq로 최소힙 구현 예시
import heapq
def heapsort(iterable):
h = []
result = []
# 모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, value)
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for _ in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
print(result)
# 최대힙 예시
import heapq
def heapsort(iterable):
h = []
result = []
# 모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, -value)
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for _ in range(len(h)):
result.append(-heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
print(result)
Reference
この問題について(Python Heapq), 我々は、より多くの情報をここで見つけました https://velog.io/@baebae/파이썬-heapqテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol