Introdução
Neste laboratório, exploraremos o algoritmo de ordenação por baldes (bucket sort) em JavaScript. O bucket sort é um algoritmo de ordenação que funciona distribuindo os elementos de um array em um número de baldes (buckets). Cada balde é então ordenado individualmente, seja usando um algoritmo de ordenação diferente ou aplicando recursivamente o algoritmo de ordenação por baldes. Este laboratório lhe dará a oportunidade de implementar este algoritmo e obter uma compreensão mais profunda de como ele funciona.
Algoritmo de Ordenação por Baldes (Bucket Sort)
Para usar o algoritmo de ordenação por baldes e ordenar um array de números, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Encontre os valores mínimo e máximo do array fornecido usando
Math.min(),Math.max()e o operador spread (...). - Crie o número apropriado de
baldes(arrays vazios) usandoArray.from()eMath.floor(). - Preencha cada balde com os elementos apropriados do array usando
Array.prototype.forEach(). - Ordene cada balde e adicione-o ao resultado usando
Array.prototype.reduce(), o operador spread (...) eArray.prototype.sort().
Aqui está um exemplo de implementação do algoritmo de ordenação por baldes em JavaScript:
const bucketSort = (arr, size = 5) => {
const min = Math.min(...arr);
const max = Math.max(...arr);
const buckets = Array.from(
{ length: Math.floor((max - min) / size) + 1 },
() => []
);
arr.forEach((val) => {
buckets[Math.floor((val - min) / size)].push(val);
});
return buckets.reduce((acc, b) => [...acc, ...b.sort((a, b) => a - b)], []);
};
Para testar o algoritmo, execute o seguinte código:
bucketSort([6, 3, 4, 1]); // [1, 3, 4, 6]
Resumo
Parabéns! Você concluiu o laboratório de Bucket Sort. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.