天天看點

java範例_Java範例集錦(四)

範例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