Сортировка массива Java
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию массива случайными целыми числами из промежутка [a; b). Значения n ,m, a, b вводятся с клавиатуры. Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность. Выведите массив на экран в виде таблицы дважды – до и после перестановки.
Я все сделал кроме перестановки столбцов массива
package com.company;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<List<Integer>> matrix = new ArrayList<List<Integer>>();
Scanner input = new Scanner(System.in);
System.out.println("Введите количество строк n:");
int n = input.nextInt();
System.out.println("Введите количество строк m:");
int m = input.nextInt();
int a,b;
System.out.println("Введите промежуток чисел от a до b:");
a = input.nextInt();
b = input.nextInt();
int[] max = new int[n];
for(int i = 0;i < n; i++)
{
List<Integer> list = new ArrayList<Integer>();;
matrix.add( list );
for(int j = 0;j < m; j++)
{
list.add(((int)(Math.random() * ((b-a)+1)+a)));
}
}
System.out.println(matrix);
for(int i = 0;i < n; i++)
{
int max1 = -999999;
for(int j = 0;j < m; j++)
{
if((matrix.get(j).get(i) > max1))
{
max[i] = matrix.get(j).get(i);
max1 = matrix.get(j).get(i);
}
}
}
}
}
Ответы (2 шт):
Воспользуйтесь таким вариантом сортировки:
Arrays.sort(ВАШ МАССИВ);
Если пожелаете воспользоваться моим ответом, то подключите класс из пакета:
import java.util.Arrays;
Вряд ли Вам непонятно, как переставлять (менять местами) столбцы.
Видимо, затруднения в том, как это организовать.
Сложите максимальные элементы столбцов (а найти их можно в момент заполнения или первого вывода) в отдельный массив.
Возьмите код любой простенькой сортировки (например - выбором или вставками) и доработайте его - сравнивать нужно элементы из доп. массива, а менять местами - и эти элементы, и соответствующие столбцы матрицы.