排序的目的是什麼?
便於查找!
如何衡量排序算法的好壞?
時間效率
排序速度(比較次數與移動次數)
空間效率
佔內存輔助空間的大小
穩定性
A和B的關鍵字相等,排序後A、B的先後次序保持不變,則稱這種排序算法是穩定的。
按待排序記錄所在位置,分爲兩類
內部排序
待排序記錄存放在內存,排序過程不需訪問外存便能完成
外部排序
參加排序的記錄數量很大,排序過程需對外存進行訪問
按排序過程中依據的原則,分爲五類
插入排序:直接插入排序、折半插入排序、希爾排序
交換排序:冒泡排序、快速排序
選擇排序:簡單選擇排序、堆排序
歸併排序:2-路歸併排序
基數排序
1.直接插入排序
時間複雜度爲 O(n2),空間複雜度爲 O(1),是一種穩定的排序方法
2.折半插入排序
3.希爾排序
希爾排序是不穩定排序
dk 值較大,子序列中對象較少,速度較快;
dk 值逐漸變小,子序列中對象變多,但大多數對象已基本有序,所以排序速度仍然很快。
4.冒泡排序
時間複雜度:O(n²)
空間複雜度:O(1)
冒泡排序是穩定排序
5.快速排序
6.簡單選擇排序
時間複雜度:O(n²)
空間複雜度:O(1)
簡單選擇排序是不穩定排序
7.堆排序
8.歸併排序
9 基數排序
多關鍵字排序