1 排序算法有那么多,如何根據業務選擇合適的排序算法
2 各排序算法的優缺點比較
2.1 快速排序
當待排序元素的關鍵字隨機分布時,快速排序的平均時間最短。快速排序比堆排序和歸並排序要快2到3倍。
快速排序會出現最壞情況。
快速排序是不穩定的。
2.2 堆排序
不會出現最壞情況。
2.3 簡單插入排序
當待排序序列基本有序時,可以使用簡單插入排序。
2.4 歸並排序
歸並排序是穩定的,但是需要一個同樣大小的存儲空間。
歸並排序用遞歸實現,核心過程是將兩個已經有序的數組歸並成一個大的有序數組,只需要同時遍歷比較即可。
3 排序算法按照時間復雜度進行的分類
3.1 平方排序
直接插入排序、直接選擇排序、冒泡排序
3.2 線性對數排序
快速排序、堆排序
3.3 線性排序
桶排序、基數排序
4 穩定排序
排序前后,key相同的元素的相對位置不變,歸並排序是穩定排序。當對多個key進行多輪排序時,就用得上穩定排序。
