我怎么又去研究算法了呢?本身不是根正苗红CS专业,基础差,亡羊补牢,填充数据结构方面的空白,学习过程遇到有趣的算法就记录下来。
常见算法,多为 c c++ python 所描述,为方便,尝试转成平常所用javascript 才疏学浅,若有写的不当之处,不吝赐教。🙏🙏🙏🙏javascript
代码实现:html
function bucketSort (arr) {
// 假设咱们排序的范围为0-10 那么咱们准备11个桶来放这些数字
let buckets = new Array(11).fill(0)
let newArr = []
// 装桶
arr.forEach(val => { buckets[val]++ })
buckets.forEach((val, index) => {
for (let i = 1; i <= val; i++) {
newArr.push(index)
}
})
return newArr
}
console.log(bucketSort([5, 3, 5, 2, 8]))
console.log(bucketSort([1, 3, 9, 8, 7, 2]))
console.log(bucketSort([3, 5, 2, 7, 9, 2, 5]))复制代码
图解:
java
桶排序 (Bucket sort)或所谓的箱排序的原理是将数组分到有限数量的桶子里,而后对每一个桶子再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后将各个桶中的数据有序的合并起来。python
桶排序动画演示: Bucket Sort Visualization
特色:c++