概念
桶排序:取 n 個桶,根據陣列的最大值和最小值確認每個桶存放的數的區間,將陣列元素插入到相應的桶裡,最後再合併各個桶
複雜度
最好:o(n),每個數都在分布在乙個桶裡,這樣就不用將數插入排序到桶裡了(類似於計數排序以空間換時間)。
最壞:o(n²),所有的數都分布在乙個桶裡。
平均:o(n + k),k表示桶的個數。
**// 桶演算法
function
bucket_sort
(arr)
temp[j +1]
= val;})
;// 修改回原陣列
let res =
.concat.([
], bucket_arr)
; arr.
foreach
((val, i)
=>)}
var sortarr =[9
,6,3
,5,2
,1,7
,343,6
,643
,243
,544,5
,63,234,0
,56,123
]bucket_sort
(sortarr)
console.
log(sortarr)
// [0, 1, 2, 3, 5, 5, 6, 6, 7, 9, 56, 63, 123, 234, 243, 343, 544, 643]
排序演算法 桶排序
桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...
排序演算法 桶排序
2009 12 02 12 01 2817人閱讀 桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均...
排序演算法 桶排序
桶排序 bucket sort 或所謂的箱排序的原理是將陣列分到有限數量的桶子裡,然後對每個桶子再分別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 最後將各個桶中的資料有序的合併起來。排序過程 假設待排序的一組數統一的分布在乙個範圍中,並將這一範圍劃分成幾個子範圍,也就是桶 ...