"Introdução aos Algoritmos" ʚLeitura de Notas e Análise ɞ Capítulo 8 - Classificação de Bucket (incluindo implementação de código de versão js)

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

  1. Classificar dados
  2. Classificar dentro do grupo
  3. 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

Acho que você gosta

Origin blog.csdn.net/weixin_38616850/article/details/110926381
Recomendado
Clasificación