1、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
3、針對所有的元素重複以上的步驟,除了最後乙個。
4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
1. 不管原始陣列是否有序,時間複雜度都是o(n2),因為每乙個數都要與其他數比較一次,(n-1)2次,分解:n2+2n-1, 去掉低次冪和常數,剩下n2,所以最後的時間複雜度是n2。
2. 空間複雜度是o(1),因為只定義了乙個輔助變數,與n的大小無關,所以空間複雜度為o(1)。
#include#includevoid bubblesort(int arr, int len)
} }}int main()
; int len = sizeof(arr) / sizeof(arr[0]); //求陣列的長度
int i = 0;
printf("排序前:");
for (i = 0; i < len; i++)
printf("\n");
bubblesort(arr, len);
printf("排序後:");
八大排序之氣泡排序
氣泡排序,穩定,平均與最壞時間複雜度為o n 2 最好為o n 空間複雜度為o 1 include using namespace std void bubblesort int numbers,const int length int main int length 0 cin length fo...
八大排序之氣泡排序
思路 冒泡,即為在每次排序時,將此時陣列內最大的數移到此時的最後一位。第一步 確定有幾個數需要放到各自情況的最後一位,答案是陣列長度 1個數。第二步 確定第i次將此時的最大數排到此時的最後一位時,需要進行比較多少次,答案是陣列長度 1 i次。因為此時已經確定了i 1個數的位置 所以用兩層迴圈即可實現...
八大排序之氣泡排序
八種排序之氣泡排序 氣泡排序的原理是 從左到右,相鄰元素進行比較。每次比較一輪,就會找到序列中最大的乙個或最小的乙個。這個數就會從序列的最右邊冒出來。1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是...