Algorithm-1.1课后习题

来源:互联网 发布:用数据讲故事 pdf 编辑:程序博客网 时间:2024/05/18 13:25

这是《算法》一书中课后习题1.1.13的习题
这里涉及到的几个知识点
1. 二维数组的定义,示例如主函数中的arr二维数组定义并将其初始化

变量类型[][] 变量名 = new 变量类型[][];example1:int[][] arr =new int[][]{                         {1,2,3},                         {4,5,6}                                };example2:int[] arr[] ={            {1,2,3},             {4,5,6}                  };example3:int[][] arr = new int[M][N];                            

注意在上述中定义数组我首先声明了一个数组,然后将其初始化,因此不用指明数组的维数
如果在声明数组时没有指明维数那么系统会出现报错。像example4就会出错;

example3:int[][] arr=new int[][];

2、二维数组的含义,arr[M][N]数组相当于M个一维数组,每个一维数组中存有N个元素。因此在获取一维数组的行数时,利用下面这个语句

arr[][]数组的行数=arr.length;

获取arr[M][N的列数利用下面这个语句

arr[][]列数=arr[m].length//m为0...M-1中任意取一个数

3、方法的格式

权限修饰符 static 返回值类型 方法名(参数类型 参数1,参数类型 参数3)example:public static int[][] exchange(int[][] arr)

在这个题目当中,因为返回值是时int型的二维数组所以返回类型为int[][]。

题目:编写一段代码,打印一个M*N的二维数组的转置

class Test1_1_5{    public static void main(String[] args)     {        int[][] arr =new int[][]{                                {1,2,3},                                {4,5,6}                                };         int[][] arr1=exchange(arr);//调用方法交换行和列         printArray(arr1);//打印数组    }    public static int[][] exchange(int[][] arr)    {        int[][] temp= new int[arr[0].length][arr.length];        for (int i=0;i<arr.length ;i++ )//行循环        {            for (int j=0;j<arr[i].length ;j++ )//列循环            {                temp[j][i]=arr[i][j];//交换元素            }        }        return temp;    }    public static void printArray(int[][] arr)//打印数组    {        for (int i=0;i<arr.length ;i++ )        {            System.out.print("{");            for (int j=0;j<arr[i].length ;j++ )            {                if (j<arr[i].length-1)                {                    System.out.print(arr[i][j]+",");                }                else                     System.out.println(arr[i][j]+"}");            }        }       }}
原创粉丝点击