俊傑 經典排序演算法種類及相關概念

2021-08-26 02:52:27 字數 941 閱讀 6394

非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o(nlogn),因此稱為非線性時間比較類排序。

線性時間非比較類排序:不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。 

比較排序,時間複雜度o(nlogn) ~ o(n^2),主要有:氣泡排序選擇排序插入排序歸併排序堆排序快速排序等。

非比較排序,時間複雜度可以達到o(n),主要有:計數排序基數排序桶排序等。

穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面。

不穩定:如果a原本在b的前面,而a=b,排序之後 a 可能會出現在 b 的後面。

時間複雜度:評估執行程式所需的時間。可以估算出程式對處理器的使用程度。 對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。

空間複雜度:評估執行程式所需的儲存空間。可以估算出程式對計算機記憶體的使用程度。是指演算法在計算機內執行時所需儲存空間的度量,它也是資料規模n的函式。

經典排序演算法及python實現

假如,有乙個無須序列a 選擇排序的過程應該如下 第一趟 選擇最小的元素,然後將其放置在陣列的第乙個位置a 0 將a 0 6和a 2 1進行交換,此時a 第二趟 由於a 0 位置上已經是最小的元素了,所以這次從a 1 開始,在剩下的序列裡再選擇乙個最小的元素將其與a 1 進行交換。即這趟選擇過程找到了...

外排序演算法及相關場景

外排序演算法的核心思路在於把檔案分塊讀到記憶體,在記憶體中對每塊檔案依次進行排序,最後合併排序後的各塊資料,依次按順序寫回檔案。外排序需要進行多次磁碟讀寫,因此執行效率往往低於內排序,時間主要花費於磁碟讀寫上。我們給出外排序的演算法步驟如下 假設檔案需要分成k塊讀入,需要從小到大進行排序。1 依次讀...

經典排序演算法的總結及Python實現

排序的穩定性和複雜度 不穩定 選擇排序 selection sort o n2 快速排序 quicksort o nlogn 平均時間,o n2 最壞情況 對於大的 亂序串列一般認為是最快的已知排序 希爾排序 shell sort o nlogn 穩定 插入排序 insertion sort o n...