Как я могу отсортировать массив 2d без преобразования его в 1d-массив. Это то, что я сделал -Как отсортировать 2D-массив (int) без преобразования его в массив 1D в java?
частный int [] [] data2D = {{1,2,3}, {6,8}, {3,2,5,2}};
private void sortCustom(){
int totalElements = 0;
// calculating total elements
for(int[] i : data2D){
totalElements = totalElements+i.length;
}
int[] data1D = new int[totalElements];
int m = 0 ;
// converting 2D data into 1D
for(int i=0 ; i<data2D.length ; i++){
for(int j=0 ; j<data2D[i].length ; j++){
data1D[m++] = data2D[i][j];
}
}
// sorting data
Arrays.sort(data1D);
//converting 1D data into 2D
int n=0;
for(int i=0 ; i<data2D.length ; i++){
for(int j=0 ; j<data2D[i].length ; j++){
data2D[i][j] = data1D[n++];
}
}
// print sorted data
for(int i=0 ; i<data2D.length ; i++){
for(int j=0 ; j<data2D[i].length ; j++){
System.out.print(data2D[i][j]+" ");
}
System.out.println();
}
}
выход:
Как вы можете видеть, что я в состоянии сортировать 2d массив после преобразования его в 1d. Мой вопрос в том, как я могу отсортировать массив 2d без преобразования его в 1-й массив?
Я хочу Короче говоря, все значения, а не грести по строкам
Вы также можете использовать 2D, 3D или nD. Вы пузырь сортируете каждый n-мерный размер. Это может быть сделано независимо от того, сколько у вас размеров. Вы также можете ознакомиться с [Radix] (https://en.wikipedia.org/wiki/Radix_sort), чтобы узнать, как это происходит, поскольку идея несколько похожа. – Emz
2D-массив - это всего лишь массив массивов. Итерируйте через свои массивы и сортируйте их. – BoDidely
Если вы посмотрите на его ввод и вывод, похоже, он хочет сортировать все значения, а не просто сортировать каждый отдельный массив. –