17

優先度の値が最も高いアイテムを最初に取得する優先キューが必要です。現在、キューライブラリの PriorityQueue クラスを使用しています。ただし、この関数は、値が最も低い項目のみを最初に返します。優先度として (sys.maxint - priority) のようないくつかの醜いソリューションを試しましたが、よりエレガントなソリューションが存在するかどうか疑問に思っていました。

4

2 に答える 2

34

代わりに負の優先順位を使用してください。 から減算する必要はありませんsys.maxint

queue.put((-priority, item))

たとえば、優先度 -10 のアイテムは、優先度 -5 のアイテムの前に返されます。

于 2013-02-27T22:53:29.360 に答える