Closed viniciusfurtado1 closed 4 years ago
Olá professor, boa noite, como a condição de parada é: (left >= right), temos o código:
if left >= right
return;
else
....
Já quando fazemos com uma condição de continuidade, invertemos a lógica e o código fica:
if left < right
....
Não é isso?
Eu não entendi o porque de no material estar escrito "Certamente eu poderia ter feito if (left > right) e economizado algumas linhas de código descartando o else ...". Se a condição de continuidade, que é o que nos faz eliminar o else, é if (left < right). Eu só acho que esse Maior que deveria ser trocado pelo Menor que. Posso estar confundido algo...
Oi, @ViniciusFurtado1 . É isso sim. Foi isso que tentei te explicar no meu comentário anterior. No material está ""Certamente eu poderia ter feito if (left > right) ", mas deve ser ""Certamente eu poderia ter feito if (left >= right) ".
Você explicou certo, mas a tua conclusão foi errada. Veja "Eu só acho que esse Maior que deveria ser trocado pelo Menor que. " Não. Ele deveria ser trocado por maior que. O Menor que é condição de continuação e é como está o código do material. Faz sentido?
Quer submeter essa mudança?
Professor, a condição de continuidade do merge sort não seria 'if(left < right)' , como foi citado anteriormente ?