Olá, Rodolfo! Tudo certo?
Muito bem, você está no caminho correto! Uma forma de você entender o comportamento do sort()
é pensar que o sort()
fará a classificação dos elementos com base no que for retornado da função comparaNumeros(a, b)
da seguinte forma:
- Se
comparaNumeros(a, b)
for menor que zero, o método sort()
entenderá que a deve possuir um índice menor que b. Portanto, o a virá antes de b. - Se
comparaNumeros(a, b)
for maior que zero, o método sort()
entenderá que b deve possuir um índice menor que a. Portanto, o b virá antes de a. - Se
comparaNumeros(a, b)
retornar zero, o método sort()
não irá alterar as posições.
Assim, se quisermos que nossa lista seja ordenada de forma crescente (do menor para o maior) usando a função comparaNumeros(a, b)
, pensamos da seguinte forma:
"Para dois valores (a e b) eu quero que o menor entre eles venha primeiro (ordem crescente), ou seja, tenha índice menor que zero". Isso em código pode ser escrito como:
if(a < b) return -1; //se a for menor que b, o return -1 no sort colocará o b antes do a
Ficou mais claro? Caso tenha ficado com alguma dúvida, não deixe de compartilhar!
Continue praticando e evoluindo na sua jornada.
Bons estudos e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!