Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Сортировка двумерного массива Java

Алексей Габов Ученик (133), на голосовании 10 месяцев назад
Всем привет! Подскажите пожалуйста, как отсортировать двумерный массив. При этом, запрещено использовать готовые методы java.util.*

Задание примерно такое:
sortRaggedArray — возвращает отсортированный, неровный, двумерный массив int[][] по следующим правилам:
входящие одномерные массивы должны быть расположены в порядке возрастания их длины;
числа во всех одномерных массивах должны быть в порядке возрастания.
Пример:
arr = [[3, 1, 2,], [3,2]] -> [[2, 3], [1, 2, 3]]
arr = [[5, 4], [7]] -> [[7], [4, 5]]
Голосование за лучший ответ
Оракул Оракул (62085) 11 месяцев назад
Да легко. Также как и построчно, только строки целиком меняете местами и все.
Вместо bubble sort можете на любую заменить
 import java.util.Arrays; 

public class Test {

public static void main(String[] args) {
int[][] array = new int[][]{
{6, 5, 4, 3, 2, 1},
{5, 4, 3, 2, 1},
{4, 3, 2, 1},
{3, 2, 1},
{2, 1},
{1},
};
sortRaggedArray(array);
for (var row : array) {
System.out.println(Arrays.toString(row));
}
}

public static void sortRaggedArray(int[][] array) {
bubbleSort(array);
for (int[] row : array) {
bubbleSort(row);
}
}

public static void bubbleSort(int[][] array) {
int i, j;
int[] temp;
boolean swapped;
for (i = 0; i < array.length - 1; i++) {
swapped = false;
for (j = 0; j < array.length - i - 1; j++) {
if (array[j].length > array[j + 1].length) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
swapped = true;
}
}
if (!swapped) {
break;
}
}
}

public static void bubbleSort(int[] array) {
int i, j, temp;
boolean swapped;
for (i = 0; i < array.length - 1; i++) {
swapped = false;
for (j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
swapped = true;
}
}
if (!swapped) {
break;
}
}
}
}
Алексей ГабовУченик (133) 11 месяцев назад
Спасибо большое!!
АлександрИскусственный Интеллект (301590) 11 месяцев назад
небольшая неточность...
если следовать заданию, метод должен "возвращать" отсортированный массив, а не менять исходный.
Похожие вопросы