[理工] 資工 圖相關 演算法 複雜度請教

作者: qoojordon (穎川琦)   2014-09-02 20:49:33
Q: DFS / BFS 是否為linear time的演算法 ?
礙於圖的input較為繁瑣 , 大部分的演算法複雜度都會以 |V| , |E|去計量
教科書的資料此兩演算法的複雜度皆為 O (|V|+|E|) ,
部分考古題解答有這種的寫法
|E| ≦ |V|^2 ..... 如果是simple graph , node數的平方 可視為是 edge的bound
依照這樣的說法 , O (|V|+|E|)這樣的複雜度
= O (|V|+|V|^2)
= O (|V|^2)
反來以 edge的角度來呈現複雜度不就變成 O (|E|) = linear !?
以我目前做考題與對觀念的了解,圖論演算法的複雜度為求精確,通會要把每
個項目寫清楚,但我上面這樣的陳述,我找不到一個好的理由反駁自己,但在結果
上就影響了一個方法是否在linear time能解決,請問我上面這樣的說法合乎邏輯嗎?
作者: FRAXIS (喔喔)   2014-09-02 21:04:00
it is linear time..
作者: A4P8T6X9 (殘廢的名偵探)   2014-09-02 21:04:00
要以 INPUT 為幾個點來看看是不是 linear
作者: FRAXIS (喔喔)   2014-09-02 21:05:00
邊數越多 輸入的大小越大 執行時間就越長 但是還是線性..
作者: A4P8T6X9 (殘廢的名偵探)   2014-09-02 21:12:00
跟存圖的資料結構也有關
作者: kiki86151 (魯飯)   2014-09-02 21:33:00
補充 linear time上的定義並不是單純指所有O(n)喔 要看執行效率相對於input size是否成線性成長 若是才是line大部分所謂的n就是指input size所以O(n)才被稱linear的

Links booklink

Contact Us: admin [ a t ] ucptt.com