function bucketSort(arr) {
if (Object.prototype.toString.call(arr).toLowerCase() !== '[object array]') {
console.error('Function bucketSort got incorrect argument')
return
}
// 声明一个空桶, 将数据压入桶中
const bucket = []
arr.forEach((one) => {
if (bucket[one] !== undefined) {
bucket[one]++
} else {
bucket[one] = 1
}
});
// 声明一个新数组, 当做排序后的数组
const newArr = []
bucket.forEach((one, index) => {
if (one !== undefined) {
for (let i = 0; i < one; i++) {
newArr.push(index)
}
}
})
return newArr
}
数字数组, key-value转成value-key, 再转回来? So this is js bucket sort ?