正在回答
2回答
同学你好,可以先将二维数组转换为一维数组进行冒泡排序,一维数组的冒泡排序在《Java一维数组 》中有讲到。排序后再将一维数组转换为二维数组。参考如下:
public static void main(String[] args) {
int[][] arr = {{11, 15, 32}, {2, 3, 21}, {4, 5, 6}};
int maolen = 0;
for (int x = 0; x < arr.length; x++) {
maolen = maolen + arr[x].length;
}
int maoarr[] = new int[maolen];
int z = 0;
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++) {
maoarr[z] = arr[x][y];
z++;
}
}
System.out.println("被转化为一维数组为:");
for (int x = 0; x < maoarr.length; x++) {
System.out.print(maoarr[x] + " ");
}
System.out.println();
//开始冒泡排序
System.out.println("开始冒泡排序");
for (int x = 0; x < maoarr.length; x++) {
for (int y = x; y < maoarr.length - 1; y++) {
int temp = 0;
if (maoarr[x] > maoarr[y + 1]) {
temp = maoarr[x];
maoarr[x] = maoarr[y + 1];
maoarr[y + 1] = temp;
}
}
}
//一维转二维
z = 0;
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++) {
arr[x][y] = maoarr[z];
z++;
}
}
System.out.println("冒完泡后的二维数组为");
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++) {
System.out.print(arr[x][y] + " ");
}
System.out.println();
}
}祝:学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星