對於幾種排序方法的學習總結

2022-04-06 18:41:10 字數 500 閱讀 4007

這段時間學習了演算法導論中前八章的幾種排序方法,有插入排序、合併排序、堆排序、快速排序、計數排序、基數排序和桶排序,其中插入排序、合併排序、堆排序和快速排序都屬於比較排序,即演算法的核心是比較陣列的兩個元素的大小來確定先後關係,基數排序、計數排序和桶排序屬於線性時間排序,即時間呈輸入規模的線性增長。是否為比較排序關係到排序方法的時間複雜度。以下只是學習過程中的一些總結,如有錯誤,歡迎釜正~~

原地排序:

原地排序是通過不申請額外的記憶體空間來進行排序,每次排序都沒有或者有常數(1)個的元素儲存在陣列之外。

1.插入排序,在排序的過程中用乙個額外的變數key(也可以不申請)來儲存當前需要比較大小的元素,然後交換,滿足原地排序的特性;

2.合併排序工作的過程是將原來的陣列劃分成兩個陣列,再通過比較這兩個陣列中最頂端元素的大小來生成排序好的陣列,因為對於遞迴演算法,每一層遞迴產生的子陣列都需要申請的額外的記憶體來儲存,排序時也需要申請額外的記憶體來儲存排序好的陣列,不屬於原地排序。

3.同理堆排序屬於原地排序,堆排序的核

總結 幾種常見的內部排序方法

直接插入排序,演算法簡潔,容易實現,時間複雜度o n2 但較穩定,在基本有序和size很小 時是最好的排序方法 include stdio.h include stdlib.h include conio.h include time.h define size 10001 main end clo...

幾種排序方法

排序方法 平均最好 最壞輔助空間 穩定性冒泡 o n2 o n o n2 o 1 穩定簡單選擇 o n2 o n2 o n2 o 1 穩定插入 o n2 o n o n2 o 1 穩定希爾 o nlogn o n2 o n1.3 o n2 o 1 不穩定堆排序 o nlogn o nlogn o n...

幾種排序方法

一 選擇排序 原理 1 依次比較陣列中元素,從而記錄下陣列中最小的元素 2 將最小元素與陣列第乙個元素交換 3 依次比較陣列中剩餘元素,從而記錄下剩餘陣列中最小的元素 與陣列第二個元素交換,以此類推 特點 需要大約 n 1 n 2 1 n 2 2次比較和n次交換,演算法的時間效率取決於比較的次數。i...