Задать вопрос

Как вывести индексы массива в порядке убывания элементов на Java?

Здравствуйте.
Нужно вывести индексы целочисленного массива в порядке убывания соответствующих им элементов.
Написал следующий код. Не работает, потому что элементы не меняются местами. Не подскажете, как исправить?
Если вы можете предложить более элегантное решение, буду вам благодарен.

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;
	}
	
}
  • Вопрос задан
  • 1772 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
anyd3v
@anyd3v
//перемена мест
  public void swap(int a, int b){
    int c = a;
    a = b;
    b = c;
  }


Вы понимаете что тут делается?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы