やあ、
Pythonでheapqを使用して、優先キューを実装しています。キュー内のアイテムの優先順位は大幅に変更されます。その場合は、ヒープをヒープ化する必要があります。
問題は、heapqにはヒープ全体をヒープ化するheapify関数しかなく、ヒープ内の特定のアイテムから開始するheapifyがあり、残りはすでに適切に順序付けられたヒープであることを認識していることです(従来のCS教科書heapifyのように)。
各heapify呼び出しはO(lgn)ではなくO(n)であるため、違いは重要です。標準リストを使用してヒープを実装せずに実行できますか?
ありがとう!
私の質問は、Pythonのヒープにキーを減らす機能を実装するにはどうすればよいですか?
そこでの答えは、特定のアイテムの適切なO(lgn)ヒープ化を使用して、ヒープベースのキューを再実装する方法がないことを示しています。