氣泡排序
(bubble sort
)重複遍歷需要排序的數列,依次比較兩個元素,如果順序錯誤就進行交換,直到不再需要交換為止。
演算法步驟如下:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
時間複雜度為:o(n^2)。
c++**實現
/*
@ 氣泡排序
@ 思路:逐個比較相鄰的元素,較小者放前面,較大者放後面,每次遍歷後,最大數"沉"到最後
@ 重複 n 遍後可是陣列有序
@ 時間複雜度:o(n^2)
*/templatevoid bubblesort_1(t *a, int n)
templatevoid bubblesort_2(t *a, int n)
}}
templatevoid bubblesort_3(t *a, int n)
} }}
參考:
1. 白話經典演算法-氣泡排序的三種實現
2. 維基百科-氣泡排序
氣泡排序 氣泡排序演算法優化
常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...
氣泡排序優化
氣泡排序優化 氣泡排序思想 內層迴圈數字兩兩比較,並交換,最後乙個數字成為最大數字 外層迴圈控制迴圈次數,不在將最後一位參與交換 冒泡改進 若內層迴圈沒有進行過一次交換,說明陣列已經有序,直接break 不需要再進行迴圈 includeusing namespace std int main int...
氣泡排序 優化
氣泡排序 1.氣泡排序的基本思想 假設待排序的表長是n,從後向前 或者從前向後 兩兩的比較相鄰兩個元素之間的大小,若為逆序 即arr i arr i 1 交換他們,一直到序列結束。我們稱之為一趟氣泡排序,結果將最大的元素交換到待排序序列中的第最後個位置 最小元素類似氣泡在水中逐漸上浮,直到水面結束 ...