范例1. 对矩陈进行转置运算
所谓对矩陈的转置就是将矩陈的行列互换。示例代码如下:
public classArrayRowColumnSwap {public static voidmain(String[] args) {//TODO Auto-generated method stub
int arr[][]=new int[][]{{10,11,12},{20,21,22},{30,31,32}}; //创建二维数组
System.out.println("******转置前的矩陈是:******");
printArray(arr);//输出二维数组
int arr2[][]=new int[arr.length][arr.length];for(int i=0; i
for(int j=0;j
arr2[j][i]=arr[i][j];
}
}
System.out.println("******转置后的矩陈是:******");
printArray(arr2);
}public static void printArray(int[][] arr) {for(int i=0;i
for(int j=0;j
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
其执行结果如下:
******转置前的矩陈是:******
10 11 12
20 21 22
30 31 32
******转置后的矩陈是:******
10 20 30
11 21 31
12 22 32
范例2. 求方陈的迹
方陈的迹,即方陈主对角线上所有元素的和。示例代码如下:
public classTrace {public static voidmain(String[] args) {//TODO Auto-generated method stub
int arr[][]= { //创建二维数组
{5,10,15,20},
{10,15,20,25},
{15,20,25,30},
{20,25,30,35}
};int tr=0;
System.out.println("********方陈arr[][]是:********");for(int i=0;i
for(int j=0;j
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}for(int i=0;i
tr+=arr[i][i];
}
System.out.println("方陈arr[][]的迹是:"+tr);
}
}
执行结果是:
********方陈arr[][]是:********
5 10 15 20
10 15 20 25
15 20 25 30
20 25 30 35方陈arr[][]的迹是:80
范例3. 遍历数组
3.1. 遍历一
public classGetDay {public static voidmain(String[] args) {//TODO Auto-generated method stub
int day[]= {31,28,31,30,31,30,31,31,30,31,30,31}; //创建并初始化一维数组
for(int i=0;i
System.out.print((i+1)+"月有"+day[i]+"天"+"\t\t");if((i+1)%3==0) { //如果i+1之和求余为零
System.out.print("\n"); //输出回车
}
}
}
}
执行结果显示如下:
1月有31天 2月有28天 3月有31天
4月有30天 5月有31天 6月有30天
7月有31天 8月有31天 9月有30天
10月有31天 11月有30天 12月有31天
3.2. 遍历二维数组,示例代码如下:
public classTrap {public static voidmain(String[] args) {//TODO Auto-generated method stub
System.out.println("*****利用for循环遍历二维数组*****");int arr[][]=new int[][] {
{10,20},
{12,13,14,15,16},
{17,18,19}
};//创建二维数组
for(int i=0;i
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("*****使用foreach语句遍历二维数组*****");for(int[] x:arr) { //外层循环变量为一维数组
for(int y:x) { //循环遍历每一个数组元素
System.out.print(y+" ");
}
System.out.println();
}
}
}
执行结果为:
*****利用for循环遍历二维数组*****
10 20
12 13 14 15 16
17 18 19
*****使用foreach语句遍历二维数组*****
10 20
12 13 14 15 16
17 18 19
范例4. 使用直接插入法排序
public classInsertSort {public static voidmain(String[] args) {//TODO Auto-generated method stub
int[] a=new int[] {12,33,23,78,20,98,28}; //创建数组并初始化
System.out.println("******排序前:******");for(int i=0;i
System.out.print(a[i]+" "); //输出数组元素
}int tmp; //定义临时变量
intj;for(int i=1;i
tmp=a[i]; //保存临时变量
for(j=i-1;j>=0&&a[j]>tmp;j--) {
a[j+1]=a[j]; //数组元素互换
}
a[j+1]=tmp; //在排序位置插入数据
}
System.out.println("\n******排序后:******");for(int i=0;i
System.out.print(a[i]+" ");
}
}
}
执行结果为:
******排序前:******
12 33 23 78 20 98 28
******排序后:******
12 20 23 28 33 78 98
范例5. 使用冒泡法排序
冒泡法排序的基本思路是对比相邻的元素值,如果满足条件就交换元素值,把较小的数移到数组前面,把大的元素移到数组后面。
冒泡排序其缺点是相较其他排序算法来讲就是效率不高。示例代码如下:
public classBubbleSort {public static voidmain(String[] args) {//TODO Auto-generated method stub
int a[]=new int[] {12,33,23,46,78,9,18}; //声明并初始化一维数组
System.out.println("***********冒泡法排序的过程是:***********");for(int i=1;i
System.out.print("第"+i+"次冒泡排序:");for(int j=0;j
if(a[j]>a[j+1]) {inttmp;
tmp=a[j]; //把第一个元素值保持到临时变量中
a[j]=a[j+1]; //把第二个元素值保存到第一个元素中
a[j+1]=tmp; //把第一个元素原值保存到第二个元素中
}
System.out.print(a[j]+" "); //输出排序后的数组元素
}
System.out.print("[");for(int j=a.length-i;j
System.out.print(a[j]+" "); //输出排序后的元素
}
System.out.print("]\n");
}
System.out.println("*****输出冒泡排序后的结果:*****");for(intx:a) {
System.out.print(x+" ");
}
}
}
执行后其结果是:
***********冒泡法排序的过程是:***********第1次冒泡排序:12 23 33 46 9 18 [78]
第2次冒泡排序:12 23 33 9 18 46 [46 78]
第3次冒泡排序:12 23 9 18 33 46 [33 46 78]
第4次冒泡排序:12 9 18 23 33 46 [23 33 46 78]
第5次冒泡排序:9 12 18 23 33 46 [18 23 33 46 78]
第6次冒泡排序:9 12 18 23 33 46 [12 18 23 33 46 78]*****输出冒泡排序后的结果:*****
9 12 18 23 33 46 78
范例6. 输出九宫格
九宫格的思想是,在一个三维方陈的九个元素中分别填入1~9个数,使得每一行、列和对角线上3个数的和都等于15。示例代码如下:
public classNineTable {public static voidmain(String[] args) {//TODO Auto-generated method stub
int arr[][]=new int[3][3]; //创建一个3阶方陈
int a=2; //第三行的行下标
int b=1; //第2列的列下标
for(int i=1;i<=9;i++) { //给数组赋值
arr[a++][b++]=i;if(i%3==0) { //如果i求余为0
a-=2;
b-=1;
}else{
a=a%3;
b=b%3;
}
}
System.out.println("******输出九宫格:******");for(int i=0;i
System.out.print(arr[i][j]+"\t");
}
System.out.println("\n");
}
}
}
执行结果为:
******输出九宫格:******
4 9 2
3 5 7
8 1 6