gpt4 book ai didi

java - 如何在java中对所有元素按升序排序的二维数组

转载 作者:行者123 更新时间:2023-11-30 02:29:26 25 4
gpt4 key购买 nike

是否有任何有效的方法可以在java中对二维数组进行排序,例如使用Arrays.sort()。例如:-

a={{3 ,1},{0,2})
result={{0,1},{2,3}}

这是我的方法:

  for (int x = 0; x < n; x++) {
for (int y = 0; y < n; y++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] > grid[x][y]) {
int t = grid[x][y];
grid[x][y] = grid[i][j];
grid[i][j] = t;
}
}
}
}
}

最佳答案

您可以先对所有元素进行排序,然后生成对或 n 个元素,例如;

int[][] a={{3 ,1},{0,2}};
int count = a[0].length;

//Sort the elements
List<Integer> sortedElements = Arrays.stream(a)
.flatMapToInt(e -> Arrays.stream(e))
.boxed()
.sorted()
.collect(Collectors.toList());

//Now, generate 2D arrays
int[][] arrays = new int[a.length][];
int[] temp = new int[count];
int index = 0;
for(int i = 0; i < sortedElements.size() ; i++){
if(i % count == 0 && i != 0){
arrays[index++] = temp;
temp = new int[count];
}
temp[i % count] = sortedElements.get(i);
}
arrays[index++] = temp;

for(int[] e : arrays){
System.out.println(Arrays.toString(e));
}

关于java - 如何在java中对所有元素按升序排序的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44613762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com