根據排序時選擇的策略可以分為:
插入排序
直接插入排序、其他插入排序(折半插入排序、2-路插入排序、表插入排序)
交換排序
氣泡排序、快速排序
選擇排序
簡單選擇排序、堆排序
歸併排序
基數排序
總結:
1、 時間複雜度為o(n2)的排序都是穩定的,且其空間複雜度為o(1);
2、 先進的排序有:希爾排序、快速排序、堆排序、歸併排序
l 希爾排序:關鍵是找到合適的增量序列,何時最有在數學上尚未解決。空間複雜度o (1)。
l 快速排序:最大的優勢就是平均時間複雜度是最低的。空間複雜度o(logn)-用於遞迴呼叫棧。
l 堆排序:最大的優勢是在最壞情況下的時間複雜度也是o(nlogn)。空間複雜度o(1)。
l 歸併排序:最大的優勢是其排序時穩定的排序。時間複雜度o(n)-用於輔助兩個歸併段融合;
基本排序演算法小結
一 插入排序 1 排序思想 將待排序的記錄ri,插入到已排好序的記錄表r1,r2 ri 1中,得到乙個新的 記錄數增加1的有序表。直到所有的記錄都插入完為止。複雜度為o n2 設待排序的記錄順序存放在陣列r 1 n 中,在排序的某一時刻,將記錄序列分成兩部分 r 1 i 1 已排好序的有序部分 r ...
排序演算法小結
1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。1 如果不多於1個資料,直接返回。2 一般選擇序列最左邊的值作為支點資料。3 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。4...
排序演算法小結
1 歸併排序 3.區別與聯絡 遞迴是從未知推到已知,相當於把未知的東西壓入棧,等到可以算出結果了,就一步一步出棧。迭代是從已知到未知,從已知的東西一步一步推至目標。遞迴與迭代就好像一對逆元。遞迴的 更加清晰,但開銷更大,也更容易出錯,除錯較困難 而迭代的 編寫更困難,但速度和開銷較小。4.空間占用 ...