Sto provando a scrivere questo tipo di selezione da alto a basso e non sono abbastanza sicuro di come farlo. Sono abbastanza nuovo negli algoritmi di ordinamento.Come invertire la selezione sort
public void selectionSort(String[ ] data){
// for each position, from 0 up, find the next smallest item
// and swap it into place
for (int place=0; place<data.length-1; place++){
int minIndex = place;
for (int sweep=place+1; sweep<data.length; sweep++){
if (data[sweep].compareTo(data[minIndex]) < 0)
minIndex=sweep;
}
swap(data, place, minIndex);
}
}
La ragione di questo che sto cercando di cambiare è che la selezione tipo qui attraversa la parte restante della matrice, alla ricerca del valore minimo e poi scambia agli front.I vogliono cambiare l'algoritmo in modo che cerchi anche il valore massimo nella parte rimanente e lo scambia sul retro, in modo da creare una lista ordinata dal fronte e dal retro allo stesso tempo.
Tutto l'aiuto sarebbe apprezzato :)
Che cosa vuoi dire? ordine decrescente? –
@SleimanJneidi sì, in ordine decrescente –
Credo che cambi solo - 'if (dati [sweep] .compareTo (data [minIndex])> 0)' –