用 JavaScript 实现桶排序的程序
javascriptweb developmentfront end technologyobject oriented programming更新于 2026/1/26 10:52:17
桶排序的工作原理是将大小为 n 的数组分成 k 个桶,每个桶包含特定范围的元素值。
然后,使用可以根据预期输入大小选择的排序算法对这些桶进行排序。
我们可以如下描述该算法 −
算法:
创建初始 bucketSort 函数 为 i、min、max 和 bucket size 创建变量 查找最小值和最大值 创建 bucket 数量 将值推送到正确的 bucket 对 bucket 进行排序
示例
其代码为 −
const arr = [32, 6, 34, 4, 78, 1, 6767, 4, 65, 34, 879, 7];
const bucketSort = arr => {
if (arr.length === 0) {
return arr;
}
let i,
minValue = arr[0],
maxValue = arr[0],
bucketSize = 5;
arr.forEach(function (currentVal) {
if (currentVal < minValue) {
minValue = currentVal;
} else if (currentVal > maxValue) {
maxValue = currentVal;
}
})
let bucketCount = Math.floor((maxValue - minValue) / bucketSize) + 1;
let allBuckets = new Array(bucketCount);
for (i = 0; i < allBuckets.length; i++) {
allBuckets[i] = [];
}
arr.forEach(function (currentVal) {
allBuckets[Math.floor((currentVal - minValue) / bucketSize)].push(currentVal);
});
arr.length = 0;
allBuckets.forEach(function(bucket) {
insertion(bucket);
bucket.forEach(function (element) {
arr.push(element)
});
});
return arr;
}
const insertion = arr => {
let length = arr.length;
let i, j;
for(i = 1; i < length; i++) {
let temp = arr[i];
for(j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
return arr;
};
console.log(bucketSort(arr));
输出
控制台中的输出 −
[ 1, 4, 4, 6, 7, 32, 34, 34, 65, 78, 879, 6767 ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

