Olá, estou com dificuldades para fazer o método selectionSort funcionar, o código é de um servidor de e-mail, onde o email tem remetente, destinatário, assunto, corpo do e-mail e prioridade. O que eu preciso fazer é ordenar os e-mails por prioridade, o problema é que na primeira passada o método ordena o menor elemento na primeira posição, porém na segunda passada ele troca esse elemento por um de novo valor e jogar o de menor para a ultima posição e fica em looping fazendo essas duas trocas. Segue o código
public void selectionSort(Email[] e) {
for (int i = 0; i < e.length - 1; i++) {
int min = i;
for (int j = i + 1; j < e.length; j++) {
if (e[j] != null) { //verifica se o array não está vazio
if (e[min].getPrioridade() > e[j].getPrioridade()) { //compara o indice prioridade
min = j;
Email temp = e[i];
e[i] = e[min];
e[min] = temp;
}
}
}
}