2012-02-23 55 views
3

首先:Dijkstras最短路徑算法的一般運行時間是迪傑斯特拉線性

Dijkstra generalrunning time

其中m是邊緣的和數目n個頂點

的數量

:預計decreasekey操作數是以下

expected running time

:與二進制堆Dijkstra算法的預期運行時間,允許在日誌中的所有操作(n)的時間是

expected binary heap

但是,爲什麼在稠密的圖的運行時間,如果線性我們考慮一個密度圖如果 dense graph

有人可以幫助在這裏的O符號和日誌計算?

回答

0

我的解決方案現在以下

calcu enter image description here

1

首先,它是不難表明,如果mn log(n) log(log(n))大歐米伽然後log(n)log(m)大歐米伽。因此,您可以顯示mn log(m) log(log(m))的大歐米茄。

由此您可以證明nm/(log(m) log(log(m)))的大歐米茄。

替代這回你在第三點有表達,我們得到了預期的運行時間爲:

O(m + n log(m/n) log(n)) 

        m             m 
    = O(m + (------------------) log(log(m) log(log(m))) log(------------------) 
      log(m) log(log(m))        log(m) log(log(m)) 

從這裏你可以展開所有的產品日誌到日誌的總和。你會得到很多條款。然後這只是一個證明每個人都是O(m)o(m)的問題。這很直截了當,雖然乏味。