I determined the temporal complexity of sorting bubbles at best according to the mothod used in ALGORITHMS 2.2. But the answer turned out to be O (n ^ 2).
Here is my conclusion, hope someone can help me find out where it is not:
public void bubbleSort(int arr[]) { for(int i = 0, len = arr.length; i < len - 1; i++) { for(int j = 0; j < len - i - 1; j++) { if(arr[j + 1] < arr[j]) swap(arr, j, j + 1); } }
}
Statements cost times i = 0,len = arr.length c1 1 i < len - 1 c2 n i++ c3 n - 1 j = 0 c4 n - 1 j < len - i - 1 c5 t1(i=0) + t1(i=1) + ... + t1(i = n-2) j++ c6 t2(i=0) + t2(i=1) + ... + t2(i = n-2) arr[j + 1] < arr[j] c7 t3(i=0) + t3(i=1) + ... + t3(i = n-2) swap(arr, j, j + 1) c8 t4(i=0) + t4(i=1) + ... + t4(i = n-2)
T (n) = c1 + c2n + c3 (n - 1) + c4 (n - 1) + c5t5 + c6t6 + c7t7 + c8t8 = c1 + c2n + c3 (n - 1) + c4 (n - 1) + c5 [t1 (i = 0) + t1 (i = 1) + ... + t1 (i = n-2)] + c6 [t2 (i = 0) + t2 (i = 1) + ... + t2 (i = n-2)] + c7 [t3 (i = 0) + t3 (i = 1) + ... + t3 (i = n-2)] + c8 [t4 (i = 0) + t4 ( i = 1) + ... + t4 (i = n-2)];
at its best casting, the sequence is already positive before sorting. Then t8 may be 0.
T (n) = c1 + c2n + c3 (n - 1) + c4 (n - 1) + c5 [t1 (i = 0) + t1 (i = 1) + ... + t1 (i = n-2 )] + c6 [t2 (i = 0) + t2 (i = 1) + ... + t2 (i = n-2)] + c7 [t3 (i = 0) + t3 (i = 1) +. .. + t3 (i = n-2)]
Time complexity O (n ^ 2)
Wendy.Huang
source share