排序分為
1、插入排序:直接插入、折半插入、希爾
2、選擇排序:簡單選擇、堆排序
3、交換排序:冒泡、快速
4、歸併排序、基數排序
一、排序過程的特點:
1、氣泡排序和堆排序在每趟處理後,都能產生當前的最大值或最小值(即序列頭或尾是有序的)
2、簡單選擇排序和直接插入排序,每趟排序後其前面均為有序
的。
3、交換類:冒泡、快速排序;選擇類:簡單選擇、堆排序每一趟就能確定乙個元素的最終位置
。
4、插入類:希爾排序、直接插入排序(特例:最小的在尾部
)、折半插入;歸併排序只有到最後一趟
才能產生有序的序列。
5、簡單選擇排序、歸併排序和基數排序時間複雜度
與序列初始狀態無關
。
6、直接選擇、折半插入比較次數
與序列初始狀態無關
。
二、穩定性:
1、穩定:
①插入排序類——直接插入排序、折中排序
②交換排序類——冒泡
③二路歸併排序、基數排序
2、不穩定:
①插入排序類——希爾排序
②交換排序類——快速排序
③選擇排序類——簡單選擇排序、堆排序
三、時/空間複雜度:
排序演算法分析
所謂排序,即將原本無需的乙個序列重新排列成有序的序列。注意,這個序列中的每一項可能是單獨的資料元素,也可能是一條記錄。所謂穩定性,是指排序中的序列中有兩個或者兩個以上相同的資料項,排序前後,這些相同的資料項相對位置沒有發生變化,那麼這個排序演算法是穩定的。下面就幾種常見排序演算法進行總結分析,並會加...
排序演算法分析
注 都是以增序為例說明!一 氣泡排序 a 原理 從陣列的第乙個位置開始,依次兩兩比較array index 與array index 1 如果array index 大於array index 1 則利用temp交換兩者位置,直到陣列結束。從陣列的第乙個位置開始,重複上面的動作,直至第n 1個位置結...
排序演算法分析 氣泡排序
假設有n個元素,現在要把這些元素按照從小到大的順序進行排序,那麼演算法步驟如下,從第0個元素開始,比較相鄰的兩個元素,第0個和第1個,第1個和第2個,第n 2個和第n 1個,比較範圍是 0,n 1 所有元素都參與比較 如果左邊的比右邊的大,就交換他們的位置,一直比較到最後乙個元素。這樣經過第一輪交換...