Boa noite. A função mergeSort, sempre começa a primeira parte da divisão com a menor? no caso, vamos supor que temos um array de 7, ele vai dividir por 2, logo temos: 1 array de 3, e outro que é a segunda parte de 4, certo? Depois ele vai dividir o de 3, que fica a 1 de 1, depois pega o 2 da primeira parte ainda, e divide novamente, acaba a primeira parte do array, e segue para o segundo, pegando 4 e fazendo igual, até aqui, foi mais para ver se estou entendendo, a pergunta é: A função sempre vai começar com a parte menor da divisão? Outra pergunta: se na segunda parte da divisão, existir um valor que deveria estar no começo da lista final, depois disso tudo, a função mergeSort, faz uma ordenação final?