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

duvida sobre o nivelAninhamento

ao executar o codigo com : const parte1 = mergeSort(array.slice(0, meio), nivelAninhamento + 1); const parte2 = mergeSort(array.slice(meio, array.length), nivelAninhamento + 1); é diferente a execução quando se usa : const parte1 = mergeSort(array.slice(0, meio), nivelAninhamento++); const parte2 = mergeSort(array.slice(meio, array.length), nivelAninhamento++); . Gostaria de saber se existe uma explicação para isso, pensava que fosse a mesma coisa escrita de formas diferentes.

2 respostas
solução!

Por definição nivelAninhamento++ é o mesmo que nivelAninhamento = nivelAninhamento + 1. Ou seja, vc atualiza o valor de nivelAninhamento

Quando você coloca nivelAninhamento + 1 você ta simplesmente passando o valor dessa expressão para a função. Mas quando vc coloca nivelAninhamento++, além de passar o valor para a função, você ta incrementando o valor de nívelAninhamento.

Se, por exemplo, tivermos nivelAninhamento = 10 ...

const parte1 = mergeSort(array.slice(0, meio), nivelAninhamento++);     // nivelAninhamento = 10
const parte2 = mergeSort(array.slice(meio, array.length), nivelAninhamento++);    // nivelAninhamento = 11

na linha 1 vc chama a função com o valor 10 e já atualiza o valor de nivelAninhamento. Nesse caso quando chamar a função na linha 2, nivelAninhamento = 11, não mais terá valor 10.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

valeu demais rodolpho, mt esclarecedor