前言在我重新复习我创建的代码段集合网站,我复习到了桶排序算法的实现,它的代码如下所示:const bucketSort = (arr, size = 5) => {
const min = Math.min(...arr);
const max = Math.max(...arr);
const buckets = Array.from(
{ length: Math.floor((max - min) / size) + 1 },
() => []
);
arr.forEach(val => {
buckets[Math.floor((val - min) / size)].push(val);
});
return buckets.reduce((acc, b) => [...acc, ...b.sort((a, b) => a - b)], []);
};咋一看代码实现思路,我并不是很清楚为什么这样写。我产生了如下几个疑惑点:为什么要取最小值和最大值?Math.floor((max - min) / size) + 1,这是一个公式,代表什么意义?并且这个公式如何得来的?Math.floor((val - min) / size),这也是一个公式,这个又是指什么?特别说明:代码段集合网站是我为了收集来自网上又或者是平时开发的
...
继续阅读
(58)