一,定义:在java中是没有二维数组的,所谓二维数组,其实就是一维数组中的数组,就像三个人走在路上,这三个人就是一维数组,每个人身上有三个兜,兜其实就是二维数组,每个兜里有三个盒子,那么盒子就是三维数组,每个盒子中都有糖果,则糖果就是数组中存放的数据。同理就有四维,五维…
不同数据类型中的初始值:
int[] //0
String[] //null
char[] //空格
boolean //false
double[] //0.0
byte[] //0
打印二维数组的基本格式:
二,杨辉三角
1
11
121
1331
14641
15101051
规律就是设行为a,列为b,每行的第一个和每行的最后一个都是1,其他有规律如下;
[a][b]=[a-1][b-1]+[a-1][b]
既然知道了规律,则代码如下:
int a[][]=new int[10][10];
for (int i = 0; i < a.length; i++) {
a[i][0]=1;
a[i][i]=1;
}
for (int i = 2; i < a.length; i++) {
for (int j = 1; j < a.length; j++) {
if(j!=0||j!=i){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for (int i = 0; i < a.length; i++) {
for (int b = 0; b <=i; b++) {
System.out.print(a[i][b]+"\t");
}
System.out.println();
}
练习:有一个数组
int[]a={10,20,30,40,50,0}
现在在数组中插入一个数字并且按照从小到大的顺序输出,此时的0只表示了一个位置。
分析:如果说直接插入的话,会覆盖之前的数据,这个题就像是5个人坐在板凳上,有6个板凳,现在又多来了一个人,按照年龄大小,年龄大的整体往后挪下,腾出个空位给年龄小的坐。
练习:九宫图-------魔方矩阵(只有奇数宫格)
8 1 6
3 5 7
4 9 2
规律:1在第一行的最中间,根据1找其他数字的位置,上右,一旦发现位置被其他数据占了,立马下下左。如果上右,下下左到极致了,则上右从左出,下从上出…就像贪吃蛇。
int[][] a=new int[7][7];
int x=0;
int y=a.length/2; //奇宫格,a.length是偶数。
a[x][y]=1;//定义1的位置
for (int i = 2; i <=a.length*a.length; i++) {
//拿着1的坐标去找2的坐标,上右
//上
x=x-1;
if(x<0) x=a.length-1;//if只有一条语句可以省略括号
//右
y=y+1;
if(y>a.length-1) y=0;
if(a[x][y]!=0){//如果位置被占
//下下左
x=x+1;
if(x>a.length-1) x=0;
x=x+1;
if(x>a.length-1) x=0;
y=y-1;
if(y<0) y=a.length-1;
a[x][y]=i;
}else{
a[x][y]=i;
}
}
//打印
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
练习:冒泡排序:也就是先拿第一个数和后面的比较,如果大/小了,把值赋给它,再和后面的进行比较,依次循环。