二维数组排序

二维数组排序

如何将二维数组进行冒泡排序,最好有实例参考

正在回答

登陆购买课程后可参与讨论,去登陆

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 19:52:36

后面课程“java集合排序”有学,只是内容比较靠后。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师