最好 最壞 平均 均攤時間複雜度

2022-09-03 09:21:11 字數 784 閱讀 7436

1、最好情況時間複雜度就是,在最理想的情況下,執行這段**的時間複雜度(如在乙個陣列中,查詢變數 x 出現的位置,陣列第乙個值是變數x)

2、最壞情況時間複雜度就是,在最糟糕的情況下,執行這段**的時間複雜度(如在乙個陣列中,查詢變數 x 出現的位置,陣列最後乙個值是變數x)

3、最好情況時間複雜度和最壞情況時間複雜度對應的都是極端情況下的**複雜度,查詢的變數 x 在陣列中的位置,有 n+1 種情況(在陣列的 0~n-1 位置中和不在陣列中的情況,在陣列組的n-1位置和不在陣列中的情況都要遍歷n遍陣列),每個位置的發生的概率為1/2,要查詢的資料出現在 0~n-1 這 n 個位置的概率為1/n,所以,根據概率乘法法則,要查詢的資料出現在 0~n-1 中任意位置的概率就是 1/(2n)。每種情況下的概率累加起來(即1*(1/2n)+2*(1/2n)+...+n*(1/2n)+n*(1/2)=(3n+1)/4),這個值就是概率論中的加權平均值,也叫作期望值,所以平均時間複雜度的全稱應該叫加權平均時間複雜度或者期望時間複雜度(時間複雜度用大 o 標記法可以省略掉係數、低階、常量,所以這裡的平均時間複雜度就是 o(n))

4、對乙個資料結構進行一組連續操作中,大部分情況下時間複雜度都很低,只有個別情況下時間複雜度比較高,而且這些操作之間出現的頻率是非常有規律的,而且有一定的前後時序關係(比如先出現o(1)再出現o(2)再出現o(1)再出現o(2)...,這樣迴圈往復的時間複雜度操作),這個時候,我們就可以將這一組操作放在一塊兒分析,看是否能將較高時間複雜度那次操作的耗時,平攤到其他那些時間複雜度比較低的操作上。而且,在能夠應用均攤時間複雜度分析的場合,一般均攤時間複雜度就等於最好情況時間複雜度

演算法複雜度分析 最好 最壞 平均 均攤

public int function int n,int x return sum 1.最壞時間複雜度當x n時,時間複雜度為o n 2.最壞時間複雜度 當x 1時,時間複雜度為o 1 3.平均時間複雜度 要查詢的變數 x 在陣列中的位置,有 n 1 種情況 在陣列的 0 n 1 位置中和不在陣列...

時間複雜度分析 最好 最壞 均攤

array 陣列.n array長度.x 需要查詢的值 int searchposition int array,int n,int x return pos 根據上面的演算法來說的話,如果我x的位置在array 0 那麼時間複雜度就是o 1 如果x的位置在array n 1 或者不在array中....

最好,最壞和平均時間複雜度

在查詢成功的情況下,若待查詢的資料元素恰好是陣列的第乙個元素,則只需比較一次即可找到,這就是最好情況,t n o 1 稱最好時間複雜度。若是最後乙個元素,則要比較n次才能找到。t n o n 稱最壞時間複雜度。在查詢不成功的情況下,無論何時進行不成功的查詢都需要進行n次比較,t n o n 成功查詢...