一个二维数组arry[][3]={7,8,5,3,7,4,9,2,5}; 1.删除数组中重复的元素,保留第一个相同的元素,重新排序,剩下元素用0代替,打印出新的二维数组 2.对新的二维数组的每一行从小到大排列,并打印出排列后的二维数组
时间: 2024-10-25 21:18:29 浏览: 15
首先,我们将二维数组 `arr` 规定为 `int arr[2][3] = {7, 8, 5, 3, 7, 4, 9, 2, 5}`。
1. 删除重复元素并重新排序:
- 我们可以先遍历整个数组,将每个非重复元素存入一个新数组(例如 `newArr[]`),同时记录下元素第一次出现的位置(因为保留第一个相同的元素)。如果遇到重复元素,就跳过。
- 排序 `newArr` 使用快速排序、归并排序等算法。
- 对于原数组 `arr` 的剩余位置,用0填充。
```java
int[][] newArr;
boolean[] isExist = new boolean[10];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
if (!isExist[arr[i][j]]) {
newArr[isExist.length - 1] = new int[]{arr[i][j]};
isExist[arr[i][j]] = true;
}
}
}
Arrays.sort(newArr, Integer::compareTo);
// 填充原数组
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
arr[i][j] = isExist[arr[i][j]] ? newArr[j] : 0;
// 打印新的二维数组
for (int[] row : arr)
System.out.println(Arrays.toString(row));
```
2. 对新的二维数组每一行从小到大排列:
- 遍历新数组 `newArr`,对于每一行,使用Arrays.sort()函数将其内部的整数从小到大排序。
```java
for (int[] row : newArr) {
Arrays.sort(row);
System.out.println(Arrays.toString(row));
}
```
注意:这个解决方案假设数组元素都是正整数。实际操作中,可能会需要更复杂的逻辑来处理浮点数或其他特殊情况。
阅读全文