学习-Java数组之二维字符数组之按字母序排序

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,对给定二维字符数组排序(把所有元素按照字母降序排序),并输出排序后的结果,输出二维数组时注意数组中的每行数字之间用空格分开,每行中最后一个数字后面也要有一个空格。

注意:不要改变数组的大小范围。

测试说明

平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。

预期输出:

 
 
  1. z v t s
  2. s r r q
  3. p o h g
  4. e d d a

开始你的任务吧,祝你成功!

参考答案

public class Transpose {
    public static void main(String[] args) {
        // 定义二维数组并初始化
        char[][] a = {
   
   {'d','v','g','r'},{'h','s','r','a'},{'q','e','t','z'},{'o','p','d','s'}};
        // 请在Begin-End间编写代码        
        /********** Begin **********/
        // 第一步:排序,从第一个元素开始,依次取每个元素与该元素之后的每个元素比较大小
        for (int i = 0; i < a.length; i++) {     // 二维数组的长度
            for (int j = 0; j < a[i].length; j++) {     // 每个一维数组的长度
                int n = j + 1;
                for (int m = i; m < a.length; m++) {     // 排序
                    for (; n < a[i].length; n++) {
                        if (a[i][j] < a[m][n]) {
                            char max = a[m][n];
                            a[m][n] = a[i][j];
                            a[i][j] = max;
                        }
                    }
                    n = 0;     // 此处是给n从第二个一维数组开始取0这个坐标
                }
            }
        }
        // 第二步:输出排序后的数组
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }
        /********** End **********/
        }
}

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121401805