題組內容

四、下列 C 語言函數是氣泡排序演算法 

(一)請問其時間複雜度為何?(5 分)

詳解 (共 4 筆)

t73568
t73568
詳解 #1732925
2016/01/20
log(2^n)
hchungw
hchungw
詳解 #5989911
2023/12/19

C語言函數實現的氣泡排序(Bubble Sort)演算法的時間複雜度為O(n²)。這是因為它包含兩個嵌套循環,其中外部循環運行n-1次,內部循環最多運行n次。在最壞的情況下(即數組是逆序的),每個元素都需要與其後面的每個元素比較並可能交換,因此需要執行n(n-1)/2次比較和交換操作。

緋村
緋村
詳解 #1824281
2017/02/06

void ourBubbleSort (int *iArray, int n) // 1 {for (i=0; iiArray[j]) // (n^2-n)*(n-1)/2 { int iTemp =iArray[i]; iArray[i] = iArray[j]; iArray[j] = iTemp; } }

總次數為 1 + n-1 + (n^2-n)*(n-1) => n^3 -2n^2 時間複雜度為 O(n^3)

Sung
Sung
詳解 #2291320
2017/06/24
平均時間:O(n^2)