Я пытаюсь написать эту сортировку выбора от высокого к низкому, и я не совсем уверен, как это сделать. Я новичок в алгоритмах сортировки.
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);
}
}
Причина, по которой я пытаюсь изменить его, заключается в том, что сортировка выбора здесь проходит через оставшуюся часть массива, ищет минимальное значение, а затем свопает его на передний план. Я хочу изменить алгоритм, чтобы он также выглядел для максимального значения в оставшейся части и меняет его местами в конце, так что он создает отсортированный список спереди и сзади одновременно.
Вся помощь будет оценена по достоинству :)
if (data[sweep].compareTo(data[minIndex]) > 0)
- person Subhrajyoti Majumder   schedule 17.09.2015a.compateTo(b) > 0
можно сделатьb.compareTo(a) > 0
илиa.compareTo(b) < 0
или-a.compareTo(b) > 0
- person Peter Lawrey   schedule 17.09.2015