Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Merge Sort

Olá pessoas!

Gostaria de saber com alguns detalhes a mais sobre o algoritmo referente a este fórum aberto.

Entendi sua forma de funcionar, mas uma parte específica de sua condicional, me surgiu uma dúvida, como os objetos entram nesta array vindo de sua array original.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

function mergeSort(arr, nivelAninhamento = 0) {

    if (arr.length > 1) {
        const meio = Math.floor(arr.length / 2);
        const arrPt1 = mergeSort(arr.slice(0, meio), nivelAninhamento + 1);
        const arrPt2 = mergeSort(arr.slice(meio, arr.length), nivelAninhamento + 1);
        arr = ordena(arrPt1, arrPt2);
    }

    return arr;

}

1° Como os dados se comportam ao serem indexados a arrPt1 e arrPt2?

2° Funciona como um .push conforme ele vai dividindo?

Obrigado desde já pelo suporte!!

2 respostas
solução!

Olá, Fabio Henrique

Há alguns meses atrás quando eu estava fazendo exatamente esse mesmo curso também fiquei meio perdido no funcionamento do Algoritmo Merge Sort, então quando comecei a compreender fiz este post no fórum Merge Sort - Fluxograma , se tiver interesse dê uma olhada, nele eu fiz um fluxograma para compreender o comportamento deste algoritmo, também disponibilizei o código.

Podemos compreender como os objetos entram na variável arr através da função ordena que está sendo chamada nesta variável e recebendo como argumentos os arrays arrPt1 e arrPt1. Se você observar há de fato um push dentro desta função, e naquele post comentei um pouco também sobre esta função :)

Muito obrigado Gabriel! ajudou deveras no aprendizado, muito obrigado mesmo!