Я хочу реализовать метод сортировки выбора, который принимает массив целых и сортирует его в порядке убывания.однако хитрость заключается в том, чтобы сохранить исходный метод сортировки выбора без изменений, а вместо этого использовать простые арифметические операции и без добавления дополнительных циклов для замены элементов после завершения сортировки массива.это мой код, и идея состоит в том, чтобы сохранить позицию максимального значения и минимального значения в локальных переменных и поменять их местами с соответствующей позицией после того, как внутренний цикл завершит итерацию.Я даже попытался использовать только одну переменную, чтобы найти самое низкое значение и поместить его в конец массива, но мне не удалось, и я получаю неправильные результаты, и мне нужна помощь, чтобы определить ошибку.вот мой код
public static void newSortMethod(int[]a){
for(int i = 0; i < a.length-1; i++){
int maxPosition=i;
int minPosition=i;
for(int j = i+1; j < a.length; j++){
if(a[j] < a[minPosition]){
minPosition = j;
}
if(a[j] > a[maxPosition]){
maxPosition = j;
}
}
swap(a,maxPosition,i);
swap(a,minPosition,a.length-i-1);
}
System.out.println();
}
public static void swap(int[]a, int i, int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static void main(String[] args) {
int[] a = {2,6,3,9,5,4,8,7,0,13,-3,1};
newSortMethod(a);
}
вот вывод программы пока -3 8 2 9 13 5 4 6 3 1 7 0