優化氣泡排序

2021-06-26 22:14:47 字數 713 閱讀 6727

氣泡排序

(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 交換他們,一直到序列結束。我們稱之為一趟氣泡排序,結果將最大的元素交換到待排序序列中的第最後個位置 最小元素類似氣泡在水中逐漸上浮,直到水面結束 ...