關於計數排序和桶排序的一點學習心得

2021-09-24 08:36:35 字數 770 閱讀 7790

計數排序(counting sort)是一種穩定的線性時間排序演算法。計數排序使用乙個額外的陣列c,其中第i個元素是待排序陣列a中值等於i的元素的個數。然後根據陣列c來將a中的元素排到正確的位置

當輸入的元素是n個 0 到 k 之間的整數時,它的執行時間是 (n+k);

演算法的步驟如下:

function

countsort(arr)

//3 入桶

for(let i = 0,len = arr.length; i < len; i++)

//4 出桶

let outarray = ;

for(let j = 0,len = bucketarr.length; j < len; j++)}}

return outarray;

}function

findmax(arr)

}return arr[k]

}複製**

桶排序 (bucket sort)或所謂的箱排序的原理是將陣列分到有限數量的桶子裡,然後對每個桶子再分別排序(有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序),最後將各個桶中的資料有序的合併起來。

排序過程:

桶排序和計數排序

桶排序和計數排序 桶排序 bucket sort 或所謂的 箱排序,是乙個 排序演算法 工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的 排序演算法 或是以遞迴方式繼續使用桶排序進行排序 桶排序是 鴿巢排序 的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序...

排序演算法 桶排序和計數排序

桶排序 bucket sort 或所謂的箱排序,也是一種排序演算法。其工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序...

計數排序 桶排序和基數排序

當輸入的元素是 n 個 0 到 k 之間的整數時,它的執行時間是 n k 計數排序不是比較排序,排序的速度快於任何比較排序演算法。由於用來計數的陣列c的長度取決於待排序陣列中資料的範圍 等於待排序陣列的最大值與最小值的差加上1 這使得計數排序對於資料範圍很大的陣列,需要大量時間和記憶體。例如 計數排...