氣泡排序、快速排序、插入排序、選擇排序、堆排序(更新中)
阿新 • • 發佈:2019-02-08
1.各個排序演算法比較
2.氣泡排序
氣泡排序演算法的原理如下:
-
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
-
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
-
針對所有的元素重複以上的步驟,除了最後一個。
-
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
氣泡排序演算法的時間複雜度
氣泡排序最好的時間複雜度為 ,氣泡排序總的平均時間複雜度為 。
氣泡排序程式碼示例
void bubble_sort(int a[], int n) { int i, j, temp; for (j = 0; j < n - 1; j++) for (i = 0; i < n - 1 - j; i++) { if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } } }
氣泡排序演算法的過程演示
1.初始情況,比較8、9,不進行交換
2.比較9、6進行交換
3.比較9、5進行交換
經過第一輪交換,最大值9移動到陣列的末尾,接下來進行第二次迴圈。從8至5進行排序。由第一輪迴圈可知,最大值8移動到了9前面。
第三次迴圈,五六進行位置交換
至此氣泡排序完成。