計數排序法(Counting Sort),只需線性時間就能完成的超快排序法 2017 年 10 月 21 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 計數排序(Counting Sort)演算法是不需進行比較的排序演算法,顧名思義,它會去數元素的數量來進行排序。這種排序法只需要線性時間和空間的複雜度就可以完成排序,比時間複雜度為O(nlogn)的演算法還快,而且作法也不會太難。雖然如此,計數排序法是並不算是常見的排序演算法,因為它只能用來排序已知數值範圍的序列(由於要直接對應序列的索引值,所以這組數值通常會是一組整數)。舉例來說,已知序列中的每... 繼續閱讀
[HackerRank]計數排序1(Counting Sort 1) 2017 年 9 月 27 日 Magic Len 程式解題、 Java 快速排序法的時間複雜度為O(nlog2n),還有什麼演算法可以排序更快呢?一般來說,大部分的演算法都需要進行「比較」,所以在最差的案例下最快也是需要nlog2n的執行時間。然而在某種類型的輸入條件下,使用「非比較」的演算法會更有效率,只需要線性時間就可以完成計算。給定一個整數陣列,請算出各數值出現的次數。 繼續閱讀