Здравствуйте.
Нужно вывести индексы целочисленного массива в порядке убывания соответствующих им элементов.
Написал следующий код. Не работает, потому что элементы не меняются местами. Не подскажете, как исправить?
Если вы можете предложить более элегантное решение, буду вам благодарен.
import java.io.IOException;
import java.util.Scanner;
public class Zadacha1 {
public static void main(String[] args) throws IOException {
Zadacha1 example = new Zadacha1();
example.recieving();
example.sorting();
}
Scanner scan = new Scanner(System.in);
int[] Array = new int[7];
//заполнение массива
public void recieving(){
for (int i = 0; i < Array.length; i++){
System.out.println("Input next element: ");
Array[i] = scan.nextInt();
}
}
//сортировка массива и заполнение массива индексов
public void sorting(){
int[][] All = new int[2][Array.length];
for (int i = 0; i < Array.length; i++){
All[0][i] = i;
All[1][i] = Array[i];
}
for (int i = 0; i < Array.length; i++){
for (int j = i; j < Array.length; j++){
if (All[1][j] > All[1][i]){
swap(All[0][i], All[0][j]);
swap(All[1][i], All[1][j]);
}
}
}
for (int i = 0; i < Array.length; i++){
System.out.print(All[0][i] + " ");
}
}
//перемена мест
public void swap(int a, int b){
int c = a;
a = b;
b = c;
}
}