顧名思義,交換排序就是根據兩個關鍵字值的比較結果,不滿足次序要求時交換。氣泡排序和快速排序是典型的交換排序演算法。其中快速排序是目前最快的排序演算法
氣泡排序是一種最簡單的交換排序演算法,通過兩兩比較,逆序交換,使關鍵字大的像泡泡一樣冒出來放在尾部。重複執行氣泡排序,最終得到有序序列。
1).待排序的元素儲存在arr[1...n]中,首先第乙個元素和第二個元素比較,逆序交換;然後第乙個元素和第二個元素比較,依次類推,直到第n-1個元素和第n個元素比較完畢為止。第一趟排序結束,最大的元素在最後.
2).第二趟排序,對前n-1個元素進行氣泡排序,關鍵字次大的元素在n-1位置
3).重複上述過程,直到某一趟排序中沒有交換元素位置,說明序列已經有序
例如,用氣泡排序演算法對序列進行非遞減排序
1).第一趟排序,兩兩比較,如果逆序則交換,如圖:122
1630
原始序列212
1630
第一次2
1216
30
void bubblesort(int arr,int n)//氣泡排序
--i;
}}
(1)時間複雜度
氣泡排序的時間複雜度和初始序列有關,可分為最好情況、最壞情況和平均情況
(2)空間複雜度
氣泡排序使用了一些輔助空間,如i,j,tmp,flag,為o(1)
(3)穩定性
氣泡排序是穩定的排序演算法
排序演算法2 氣泡排序
鏈結1 鄰居好說話 氣泡排序 啊哈!演算法 氣泡排序的核心部分是乙個雙重巢狀迴圈。時間複雜度為 o n2 o n 2 n n 為待排序的元素個數。以下是自己的 include include using namespace std 輸出陣列中的內容 void print int p,int num ...
排序演算法2 氣泡排序,快速排序
氣泡排序 include using namespace std void bubblesort int arry,int size void print int arry,int size void main print arry,5 bubblesort arry,5 print arry,5 ...
排序演算法(2) 氣泡排序(Bubble Sort)
本文排序方式以從小到大順序為準 從陣列第一位的元素開始,和第二位的元素比較,較大的元素放在第二位 然後第二位的元素再和第三位的元素比較,較大的元素放在第三位 重複執行,直到最後兩位的元素比較交換完位置。重複上面動作,一輪冒泡後沒有交換動作。終止條件 因為氣泡排序是兩兩比較交換,所以終止條件是一輪冒泡...