交換排序 氣泡排序

2021-09-26 01:33:26 字數 800 閱讀 7305

(公升序) 從序列開始到末尾,將ai與a(i+1)項逐對進行比較,如果ai > a(i+1),則將他們互換,直至比較到an,這樣每一輪交換後都能將乙個最大的數放至序列末尾,經過n-1次比較就將所有數排好序了。(因為每一輪排序都找出乙個最大的,所以經過n-1輪排序,就將n-1個數排好了,最後剩的那個數就是最小的,不用再比較了)

a序列:3 6 5 4 2

第一輪排序:3與6比較,3<6,不交換。3 6 5 4 2

6與5比較,6>5,交換   a序列:3 5 6 4 2

6與4比較,6>4,交換  a序列: 3 5 4 6 2

6與2比較,6>2,交換 a序列: 3 5 4 2 6

第一輪排序結束,將乙個最大的數6放到序列末尾,後面就不再需要與6進行比較了,因為6的位置已經是最終位置了。

第二輪排序對 3 5 4 2這4個數進行排序。

#includevoid printarray(int a,int len)

} if(!flag) //如果flag==0,迴圈結束,不再需要排序了。

break;

} }

int main() ;

int b[5]=;

sort(b,5);//排序

printarray(b,5);//輸出

}

時間 (最壞情況:逆序,執行 n*(n-1)/2 次基本操作。) 複雜度:o(n^2)

時間 (最好情況:順序) 複雜度:o(n)

時間 (平均情況) 複雜度:o(n^2)

空間複雜度:o(1)

交換排序 氣泡排序

交換排序 兩兩比較待排序記錄的關鍵碼,若是逆序,則交換,直到無逆序。其中最簡單的交換排序是 氣泡排序。氣泡排序 bubble sort,也叫起泡排序 不斷地比較相鄰的記錄,若是不滿足排序要求,則交換。交換時,可從前向後,也可從後向前。看乙個從前向後的排序過程 原序列 12 3 45 33 6 下標 ...

氣泡排序 交換排序

最壞情況下,直接插入排序時間複雜度為 n 最小時間代價為 n 平均時間代價為 n 附加儲存空間 乙個儲存單位 穩定性 穩定 原址性 是 緊緻性 乙個比較,三個賦值操作 特點 對於基本有序,或偶爾有幾個在有序位置附近時,效率高,只有直接插入排序和它達到一樣的效果 整體效果不如直接插入排序,因為,直接插...

交換排序 氣泡排序

1.原理 從小到大排序 存在10個不同大小的氣泡,由底至上地把較少的氣泡逐步地向上公升,這樣經過遍歷一次後,最小的氣泡就會被上公升到頂 下標為0 然後再從底至上地這樣公升,迴圈直至十個氣泡大小有序。在 氣泡排序中,最重要的思想是兩兩比較,將兩者較少的公升上去 氣泡排序最壞情況的時間複雜度是o n 2...