🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![](https://img.kancloud.cn/55/bd/55bdaa0253026d20564c7da9f8c3dcff_955x539.gif) # JavaScript ~~~ function bucketSort(arr, bucketCount) { // 计算最大、最小值 let minValue = arr[0] let maxValue = arr[0] for(let i=1;i<arr.length;i++) { if(arr[i]<minValue) { minValue = arr[i] } if(arr[i]>maxValue) { maxValue = arr[i] } } // 计算桶的跨度 let size = Math.floor((maxValue - minValue + 1) / bucketCount) // 创建桶 let buckets = new Array(bucketCount + 1) for(let i=0;i<buckets.length;i++) { buckets[i] = [] } // 向桶中放 for(let i=0;i<arr.length;i++) { buckets[Math.floor((arr[i]-minValue) / size)].push(arr[i]) } // 排序每个桶 arr.length = 0 // 清空原数组 for(let i=0; i<buckets.length; i++) { insertSort(buckets[i]) // 之前写的插入排序 for(let j=0; j<buckets[i].length; j++) { arr.push(buckets[i][j]) } } return arr } ~~~