至此,總結一下已經研究過的排序演算法:
insertion sort,θ(n從上面的發現中,可以提出這樣乙個猜想:2)\theta(n^2)
θ(n2
)merge sort, θ(n
logn
)\theta(nlogn)
θ(nlog
n)quicksort, θ(n
logn
)\theta(nlogn)
θ(nlog
n)heapsort,θ(n
logn
)\theta(nlogn)
θ(nlog
n)
所有基於比較的排序演算法,演算法複雜度≥θ(數學證明的思路分兩步,1⃣️找到一種更加抽象的數學結構表達各種基於比較排序演算法;2⃣️研究這種抽象的數學結構的性質;3⃣️利用得到的性質說明結論。nlog
n)\ge\theta(nlogn)
≥θ(nlo
gn)。
這個決策樹和machine learning裡的決策樹本質上是乙個意思。
決定基於比較的排序演算法的複雜度是比較的次數,用decision tree就是某乙個路徑的高度h
hh,現在已經證明整個二叉樹的高度h≥ω
(nlo
gn)h\ge\omega(nlogn)
h≥ω(nl
ogn)
,那就說明基於比較的排序演算法的複雜度≥ω(
nlog
n)\ge\omega(nlogn)
≥ω(nlo
gn)。
七大基於比較的排序
就是使一串記錄,按照其中的某個關鍵字的大小,遞增或遞減排列起來的操作。通常意義上的排序,指的是原地排序 公升序 穩定性 兩個相等的資料,如果經過排序後,排序演算法能保證其相對位置不發生變化,則稱該演算法是具備穩定性的排序。例如 9 5 a 4 6 5 b 0,排序後為 4 5 a 5 b 6 9 1...
演算法 排序 非基於比較的排序
非基於比較的排序與樣本的資料狀況有很大的關係,由於這個限制使其在工程中並不常用。非基於比較的排序有桶排序,基數排序,計數排序。這三者都能做到排序的穩定性,時間複雜度為 o n 空間複雜度為 o n 假設存在一組資料,裡面的資料只有 0 60 使用非基於比較的排序。思路 此時可以使用計數排序,準備 6...
基於比較的內部排序總結
基於 比較 操作的內部排序效能大pk 我們首先總結一下 排序結構專題1 4 中的十種方法的效能 n個關鍵字的待排序列 排序方法 平均時間 最壞時間 輔助儲存空間 穩定性 直接插入排序 o n 2 o n 2 o 1 折半插入排序 o n 2 o n 2 o 1 希爾排序 o n logn o n l...