給一排序程式判斷時間複雜度

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

void ourBubbleSort (int *iArray, int n) 

{ for (int i =0; i<n-1; i++) 

 for (int j = i+1; j<n; j++) 

 if (iArray[i]>iArray[j]) 

 { int iTemp = iArray[i]; iArray[i] = iArray[j]; iArray[j] = iTemp;} 


答:

外層迴圈i從0~(n-2)共執行n-1次

內層迴圈j從i+1開始執行至n-1共n-1-(i+1)+1=n-i-1

即(n-1)+(n-2)+(n-3)…,+1

=(((n-1)+1)*(n-1))/2

總執行次數為O(n^2)



沒有留言:

張貼留言

寫下幸福點子吧!