十大排序演算法

2021-09-25 19:25:17 字數 946 閱讀 6208

github

排序演算法是《資料結構與演算法》中最基本的演算法之一。

排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有:插入排序、希爾排序、選擇排序、氣泡排序、歸併排序、快速排序、堆排序、基數排序等。

用一張圖概括:

關於時間複雜度:平方階 (o(n2)) 排序 各類簡單排序:直接插入、直接選擇和氣泡排序。

線性對數階 (o(nlog2n)) 排序 快速排序、堆排序和歸併排序;

o(n1+§)) 排序,§ 是介於 0 和 1 之間的常數。 希爾排序

線性階 (o(n)) 排序 基數排序,此外還有桶、箱排序。

關於穩定性:穩定的排序演算法:氣泡排序、插入排序、歸併排序和基數排序。

不是穩定的排序演算法:選擇排序、快速排序、希爾排序、堆排序。

名詞解釋:n:資料規模

k:「桶」的個數

in-place:占用常數記憶體,不占用額外記憶體

out-place:占用額外記憶體

穩定性:排序後 2 個相等鍵值的順序和排序之前它們的順序相同

補充:

1、這裡希爾排序講的不是很清楚,看一下這個希爾排序**

十大排序演算法

1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...

十大排序演算法

排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...

十大排序演算法

1 選擇排序 找到陣列中最小的那個元素,其次,將它和陣列的第乙個元素交換位置。其次,在剩下的元素中找到最小的元素,將它與陣列的第二個元素交換位置。如此往復,直到將整個陣列排序。這種方法我們稱之為選擇排序。public class 選擇排序 system.out.println arrays.tost...