資料結構 選擇排序 插入排序 氣泡排序 快速排序

2021-07-25 11:01:34 字數 1559 閱讀 2725

排序方法按原理、其它說明、圖示、c++**案例四個方面來分析

原理:將初始序列(a[0]~a[n-1])作為待排序序列,第一趟在待排序序列(a[0]~a[n-1])中找到最小值(或最大值)元素,將其與第乙個元素a[0]交換,這樣子序列(a[0])已經有序,下一趟在排序在待排序子串行(a[1]~a[n-1])中進行。第i趟排序在待排序子串行(a[i-1]~a[n-1])中找到最小值(或最大值)元素,與該子串行中第乙個元素a[i-1]交換。經過 n-1 趟排序後使得初始序列有序。
其他說明:選擇排序的最好、最壞和平均情況的

時間複雜度都為

,而且它還需交換元素(n-1)次和移動元素3(n-1)次;它是不穩定的排序演算法。

圖示

cout << "未排序的序列:\t";

print(queue1, n);

insert_sort(queue1, n);

cout << "排序後的序列:\t";

print(queue1, n);

system("pause");

return 0;

}

原理:第一趟在序列(a[0]~a[n-1])中從前往後進行兩個相鄰元素的比較,若後者小,則交換,比較 n-1 次;第一趟排序結束,最大元素被交換到a[n-1]中,下一趟排序只需要在子串行(a[0]~a[n-2])中進行;氣泡排序最多進行 n-1 趟。基本的氣泡排序可以利用旗標的方式稍微減少一些比較的時間,當尋訪完序列後都沒有發生任何的交換動作,表示排序已經完成,而無需再進行之後的比較與交換動作。

其他說明:氣泡排序最好的情況下只需進行一趟排序,(n-1)次比較,此時的時間複雜度為o(n),無需移動元素;最壞的情況下進行 n-1 趟排序,時間複雜度為o(n2);氣泡排序是穩定的排序演算法

排序方法比較

插入排序&選擇排序:
氣泡排序:
快速排序:
其它:

資料結構之基礎排序(選擇排序 插入排序 氣泡排序)

排序在 中用的非常普遍,所以今天我們來學下最基礎的三種排序,如果你已經爛熟於心,請跳過本文。注 我的 一般沒有注釋,我覺得沒啥必要,都是基礎挺簡單的。include include void print int array,int len printf n void swap int array,i...

資料結構與演算法三(氣泡排序 選擇排序 插入排序)

排序 將一組 無序 的記錄序列調整為 有序 的記錄序列 公升序與降序 列表排序 將無序列表變為有序列表 def bubble sortup li 氣泡排序公升序 for i in range len li 1 第i趟 exchange false 增加乙個標誌位,當某一趟結束後列表順序沒有改變,說明...

資料結構之簡單演算法(氣泡排序 選擇排序 插入排序)

簡單的js資料 實現氣泡排序 1.定義乙個簡單的無序陣列 var num 12,13,10,31,11,19 2.反向迴圈,每次剔除最右邊的數,因此次數越來越少 for var j num.length 1 j 0 j 選擇排序是對氣泡排序的改進,比氣泡排序的效率高一點,但與其他演算法比較效率較低 ...