/*
算法程序 ヤン・ハオチェンのアルゴリズムプログラム
創建一個原始的二維數組 11*11
0表示沒有棋子,1表示黑子,2表示藍子
將二維數組轉稀疏數組
1.先遍歷二維數組,得到非0數據
2.創建稀疏數組
オリジナルの2次元配列の作成11 * 11
0はチェスの駒なし、
1は黒、2は青を意味します。2次元配列をスパース配列にします。
1.
2次元配列を走査してゼロ以外のデータを取得します。
*/
package yanhaochen;
import java.net.StandardSocketOptions;
public class hello{
public static void main(String[] args){
int chessArrary[][] = new int[11][11];
chessArrary[1][2]=1;
chessArrary[2][3]=2;
System.out.println("原始的二維數組:");
for(int[]row:chessArrary){
for(int data:row){
System.out.printf("%d\t",data);
}
System.out.println();
}
int sum=0;
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(chessArrary[i][j]!=0){
sum++;
}
}
}
int sparsearr[][] = new int[sum+1][3];
//給稀疏數組賦值 スパース配列への値の割り當て
sparsearr[0][0] = 11;
sparsearr[0][0] = 11;
sparsearr[0][2] = sum;
//遍歷二維數組 ,將稀疏數組存放到數組中 2次元配列を反復処理し、スパース配列を配列に格納します
int count=0;//count記錄次數 レコードを數える
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(chessArrary[i][j]!=0){
count++;
sparsearr[count][0]=i;
sparsearr[count][1]=j;
sparsearr[count][2]=chessArrary[i][j];
}
}
}
System.out.println();
System.out.println("得到的數組爲");
for(int i=0;i<sparsearr.length;i++){
System.out.printf("%d\t%d\t%d\t",sparsearr[i][0],sparsearr[i][1],sparsearr[i][2]);
}
System.out.println();
}
}
Java稀疏數組,日語註釋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.