用一張圖描述一下桶排序的思路
桶排序實際上一種比較極端的排序方式,因為它需要將陣列中的數值變為設定對應數量的桶,儘管js允許這麼做,但這種做法無疑對效能消耗較大.
核心在於在承載下標的容器 bocket 中 取出對應下標,並將原陣列清空.
//1.需要乙個陣列;
var arr =
[18,11,28
,45,23
,50];
//需要建立對應數量的桶,可以省略;
// 因為js可以建立對應數量的桶;
//承載下標的容器;
var bocket =
;for
(var i =
0; i < arr.length ; i ++
) console.
log(bocket)
;//取出下標
//清空原陣列;
arr.length =0;
// 用 for in 去做 比for迴圈節省次數;
for(
var attr in bocket)
console.
log(arr)
;<
/script>
執行結果如下:
桶排序簡述(區別於計數排序)
桶排序可用於最大最小值相差較大的資料情況,比如 9012,19702,39867,68957,83556,102456 但桶排序要求資料的分布必須均勻,否則可能導致資料都集中到乙個桶中。比如 104,150,123,132,20000 這種資料會導致前4個數都集中到同乙個桶中。導致桶排序失效。對於乙...
排序演算法 桶排序
桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...
排序演算法 桶排序
2009 12 02 12 01 2817人閱讀 桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均...