二维数组排序
来源:2-1 数组总结
Deity_zc
2020-06-13 19:43:10
如何将二维数组进行冒泡排序,最好有实例参考
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();
}
}祝:学习愉快~
慕丝1539783
2020-06-13
后面课程“java集合排序”有学,只是内容比较靠后。
相似问题
回答 1
回答 1