В классе наш учитель попросил нас отсортировать список массивов, а затем вернуть его в виде 2D-массива с каждым изменением.Java: Сортировка Список массивов и возврат в виде 2D-массива
Это массив: 35, 7, 63, 42, 24, 21 и в конце концов программа должна распечатать так:
[7 35 63 42 24 21]
[ 7 21 63 42 24 35]
[7 21 24 42 63 35]
[7 21 24 35 63 42]
[7 21 24 35 42 63]
[7 21 24 35 42 63]
У меня следующий код, но так или иначе он просто не работает (обратите внимание, что государственная статическая сила уже дана, поэтому мы должны осуществлять общественный статический Int [] [] сортировку выбора (интермедиат [] a)
Что в этом плохого?
public static void main(String[] args) {
int[] a = new int[] { 35, 7, 63, 42, 24, 21 };
int[][] c = selectionsort(a);
for (int i = 0; i < c.length; i++){
System.out.print("[ ");
for (int j = 0; j < c[i].length; j++) {
System.out.print(c[i][j]+" ");
}
System.out.println("]");
}
/*
* expected printout
* [ 7 35 63 42 24 21 ]
* [ 7 21 63 42 24 35 ]
* [ 7 21 24 42 63 35 ]
* [ 7 21 24 35 63 42 ]
* [ 7 21 24 35 42 63 ]
* [ 7 21 24 35 42 63 ]
*/
}
public static int[][] selectionsort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
return a;
}
Вам нужно создать 2D массив для заполнения и возврата в выборе рода, а не возвращение аргумент а. – WillShackleford
Хорошо, я понимаю это, но как это сделать? Я новичок, и я действительно не знаю ... – Yanlu
Что хочет ваш учитель, так это то, что вы создаете копию массива, отсортированную на каждой итерации алгоритма сортировки, и храните эту копию как элемент массива или массива int. Когда алгоритм завершен, верните массив массивов, содержащих все промежуточные копии. Итак, google для «как определить 2D-массив в Java» и «как создать копию массива в Java». –