Моя сортировка выбором здесь проходит через оставшуюся часть массива, ищет минимальное значение, а затем меняет его местами на передний план. Я хочу изменить алгоритм, чтобы он также искал максимальное значение в оставшейся части и менял его на сзади, так что он создает отсортированный список спереди и сзади одновременно.
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);
}
}
У меня есть другой метод, который проверяет, отсортирован ли массив или нет, поэтому решение должно пройти через это.
public boolean testSorted(String[] data) {
for (int i=1; i<data.length; i++){
if (data[i].compareTo(data[i-1]) < 0)
return false;
}
return true;
}
Любая помощь будет оценена по достоинству, я занимаюсь этим часами. Я новичок в этом, и я действительно хочу получить его. Спасибо
Это то, что я пробовал:
public void selectionSort2(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);
}
}
java.util.Arrays.reverse(array);
- person ZeAL0T   schedule 17.09.2015<
на>
заставляет код выполнять оба минимума вперед, и максимума назад, в одно и то же время? Вы изменили 1 символ, как это попытка удвоить действие? - person Andreas   schedule 17.09.2015