2
當我自學自己的斐波那契堆時,我有這個問題,現在我知道這是一個高效的數據結構,用於在堆中降低堆中元素的優先級時實現優先級隊列,延遲時間複雜度爲O(1)
。 但是,從CLRS教科書中,優先級降低操作假定節點保持目標元素是預知的。 我很好奇我怎麼纔能有效地獲得所需的節點,如果不是最小節點。 一個天真的實現和分析會產生O(n)
最差情況下的時間複雜度,以在斐波那契堆上執行查找操作,與其他操作相比效率較低。 所以我的問題是斐波那契堆有效的查找操作,還是有必要?在斐波那契堆中查找操作
這意味着我需要一個額外的數據結構來維護所有的節點。 (在Dijkstra的算法示例中,它是一個圖)? –
是的,你想要指向存儲在某個地方的節點的指針,這樣你就可以輕鬆訪問它們。是的,在迪克斯特拉的算法中,它是圖表。 –