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

[Dúvida] Algoritmos II : Primeira Aula

Creio que a primeira aula ensine o Merge Sorting correto? Que pega 2 arrays ordenados e juntam em 1 só também ordenado?

Então, minha dúvida é que no início é explicado considerando que se receba 2 arrays ordenados, depois muda-se para 1 array apenas. Essa parte que não entendi.

Uma vez que recebo um array só já "somado" com os 2 arrays, considerando que o primeiro array é do intervalo de indice 0 até miolo - 1, e o segundo array é a partir do miolo até o tamanho do array - 1, como vou saber a posição correta do miolo já que poderei não receber 2 arrays unidos de mesmo tamanho, impossibilitando de considerar que o miolo seja o valor total do array / 2 ?

2 respostas
solução!

Oi, Daniel.

Um dos argumentos do método intercala é justamente o miolo. Veja:

private static Nota[] intercala(Nota[] notas, int inicial, int miolo, int termino) {
    (...)
}

O código que for passar o array para ser ordenado, tem que dizer o ínicio, o miolo e o término que será ordenado no array.

Era essa sua dúvida?

Obrigadão pelo retorno Arthur. Então, eu entendi que existe o atributo miolo que define o índice o qual se inicia o segundo array dentro do array informado pelo atributo notas (seguindo o seu exemplo). Porém justamente minha questão é: como saber qual é o miolo?

Você meio que me respondeu com uma assinatura que recebe o array por intermédio do atributo notas, e os atributos inicial, miolo e termino, ou seja, quem for usar o método deverá saber a posição. Aí é justo, porém levantei a questão aqui pois no curso foi explicado com o seguinte método:

intercala(notasDoMauricio, notasDoAlberto);

Ou seja, você pode ver que no exemplo do curso não houve a sugestão da especificação do miolo via assinatura de método, o que me deixou meio perdido.

Mas tranquilo! Entendido agora! Valeus!