O que é classificação de balde
A classificação de
intervalos pode ser considerada um método de atualização de classificação de contagem. A classificação de intervalos se refere à classificação de um conjunto de dados de acordo com um determinado intervalo. Pode ser simplesmente entendido como classificá-los olhando para o primeiro dígito.
Em seguida, classifique em cada segmento. Neste momento, você pode usar qualquer método de classificação. A classificação de intervalos
tem restrições aos dados. Se não for o mesmo número de dígitos, a classificação de intervalos não faz muito sentido.
Processo de algoritmo
- Classificar dados
- Classificar dentro do grupo
- combinação
Implementação de algoritmo
function BucketSort(arr) {
let l = arr.length
if (l <= 1) return arr
let max = Math.max.apply(null, arr)
let result = []
let buckets = new Array(l).fill([])
for (let i = 0; i < l; i++) {
let BucketIndex = parseInt(arr[i].toString()[0])
buckets[BucketIndex].length == 0 ? buckets[BucketIndex] = [arr[i]] : buckets[BucketIndex].push(arr[i])
}
buckets.forEach(e => {
QuickSort(e, 0, e.length - 1)
result = result.concat(e)
})
return result
}
module.exports = BucketSort