基礎演算法 6 不基於比較的排序

2021-08-31 07:22:06 字數 363 閱讀 8303

o(n)不基於比較的排序演算法:

在接下來的幻燈片,我們將討論兩種不基於比較的排序演算法: 計數排序和基數排序。

這些排序演算法可以通過不比較陣列的專案來比時間複雜度為ω(n log n)的基於比較的排序演算法的下限更快。

排序演算法的下限:

我們都知道(在這個視覺化中也沒有證明,因為它需要花費乙個小時的講座來證明),所有基於比較的排序演算法都具有ω(n log n)的下限時間複雜度。

因此,任何具有最壞情況複雜度o(n log n)的基於比較的排序演算法(如歸併排序)都被認為是最優演算法,即我們不能做得比這更好。

然而,如果存在輸入陣列的某些假設,我們可以避免比較這些專案來確定排序順序, 然後實現更快的排序演算法 - 比如在o(n)中。

計數排序 不基於比較O n

計數排序,這種排序演算法不是基於元素比較,而是利用陣列下標來確定元素的正確位置。建立陣列a,按照待排序陣列的值b,根據每個b值對應a的下標 有了這個統計結果,排序就很簡單了,直接遍歷陣列,輸出陣列元素的下標值,元素的值是幾,就輸出幾次。它適用於一定範圍的整數排序。在取值範圍不是很大的情況下,它的效能...

演算法 排序 非基於比較的排序

非基於比較的排序與樣本的資料狀況有很大的關係,由於這個限制使其在工程中並不常用。非基於比較的排序有桶排序,基數排序,計數排序。這三者都能做到排序的穩定性,時間複雜度為 o n 空間複雜度為 o n 假設存在一組資料,裡面的資料只有 0 60 使用非基於比較的排序。思路 此時可以使用計數排序,準備 6...

不基於比較的排序(桶排序)和演算法的穩定性

1 計數排序 2 基數排序 分析 1 桶排序思想下的排序都是不基於比較的排序 2 時間複雜度為o n 額外空間負載度o m 3 應用範圍有限,需要樣本的資料狀況滿足桶的劃分 1 有十個桶,跟別代表進製位上的數字為多少 2 看看陣列中所有的數,最大的數的位數,作為迴圈的次數 3 找到相同進製位 位數為...