演算法9 4 最大流演算法複雜度分析

2021-09-07 04:52:07 字數 768 閱讀 2062

前面一節介紹了ford-fulkerson演算法。那麼這個演算法是否一定可以在有限步驟內結束?要多少步驟呢?

這個問題的答案是。該演算法確實可以在有限步驟之內結束。可是至於須要多少步驟,就要細緻分析。

為了分析問題,須要假定圖中全部邊的容量都是整數。可是有個嚴重的問題,比方下圖中,假設使用ford-fulkerson演算法,須要迭代200次才幹結束。

首先將全部邊的容量都初始化為0。

第一次迭代和第二次迭代之後。兩條邊各新增了1。

到最後200次迭代之後整個演算法才結束。

這還不算最壞的情況。由於整數最多能夠取值大約21億,那樣可能就要迭代21億次。演算法的效率非常差。

只是好在這樣的問題的解決的方法還是比較簡單的,由於每次選擇路徑的時候能夠選擇最寬的路徑。這樣迭代次數就少了非常多。

從這個樣例能夠看出演算法的效率跟路徑的選擇方式有關。下表總結了路徑的不同選擇方式對演算法複雜度造成的影響。

當中u代表的是整數的最大取值範圍。

演算法複雜度分析

分析非遞迴演算法效率的通用方案 1.決定用哪個 哪些 引數作為輸入規模的度量 2.找出演算法的基本操作 作為一規律,它總是位於演算法的最內層迴圈中 3.檢查基本操作的執行次數是否只依賴輸入規模。如果它還依賴一些其他的特性,則最差效率 平均效率以及最優效率 如果必要 需要分別研究。4.建立乙個演算法基...

演算法複雜度分析

演算法分析的四個漸進表示法 一般,o裡的,取最小的 一般,裡的,取最大的 一般分析時間複雜度,且常考慮最壞複雜度,常用o分析 三法則 法則一 如果t1 n o f n t2 n0 o g n t1 n t2 n max o f n o g n t1 n t2 n o f n o g n 法則二 如果...

演算法複雜度分析

類別name 名字交換類排序 quicksort 快速排序 交換類排序 bubble sort 氣泡排序 選擇類排序 selection sort 選擇排序 選擇類排序 heapsort 堆排序插入類排序 insertion sort 插入排序 插入類排序 shell sort 希爾排序 bucke...