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

2021-09-11 05:32:01 字數 907 閱讀 3182

在查詢成功的情況下,若待查詢的資料元素恰好是陣列的第乙個元素,則只需比較一次即可找到,這就是最好情況,t(n)=o(1),稱最好時間複雜度。

若是最後乙個元素,則要比較n次才能找到。t(n)=o(n),稱最壞時間複雜度。

在查詢不成功的情況下,無論何時進行不成功的查詢都需要進行n次比較,t(n)=o(n)。

成功查詢是的平均次數:(n+1)/2,t(n)=o(n)。 稱平均時間複雜度。一般取最壞或平均時間複雜度。

public static int rsearch(int a, int x) 		}	}

}}

此演算法正序最好,逆序最壞t(n)= n(n-1)/2+2n(n-1) = o(n*n)

n個資料元素的a陣列中刪除第i個元素

public class 時間複雜度3 {

public static int delete(int a,int n,int i) {

int j;

if(i<1||i>n) return 0;

for(j=i;j最壞n-1,最好0,所以求平均t(n)=(n-1)

常數階o(1),

對數階o(log2n)(以2為底n的對數,下同),

線性階o(n),

線性對數階o(nlog2n),

平方階o(n^2),

立方o(n^3)

,...,

k次方階o(n^k),

指數階o(2^n)。

隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

有錯誤之處,請各位大佬多多指教。

最好,最壞,平均時間複雜度分析

例子1public static intfind int array,int n,int x return pos 分析例子1的時間複雜度 例1的主要實現在for迴圈中的array i 上。他的時間複雜度就是來自for迴圈 所以他的時間複雜度就是o n n就是陣列的長度。但是經常有時是,不需要將所有...

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

1 最好情況時間複雜度就是,在最理想的情況下,執行這段 的時間複雜度 如在乙個陣列中,查詢變數 x 出現的位置,陣列第乙個值是變數x 2 最壞情況時間複雜度就是,在最糟糕的情況下,執行這段 的時間複雜度 如在乙個陣列中,查詢變數 x 出現的位置,陣列最後乙個值是變數x 3 最好情況時間複雜度和最壞情...

演算法 最好 最壞 平均複雜度

注 本文僅為筆記。原文 極客時間 資料結構與演算法之美 04 複雜度分析 下 最好 最壞 平均 均攤時間複雜度 略,比較容易分析。需考慮概率來計算。概率論中的加權平均值,也叫作期望值,所以平均時間複雜度的全稱應該叫加權平均時間複雜度或者期望時間複雜度。均攤時間複雜度及對應的攤還分析法。對乙個資料結構...