07 二维数组&排序

**

07 二维数组&排序

**
1、二维数组
(1)定义
①静态定义
1)数据类型[][] 数组名 = new 数据类型[][]{值1,值2,值3…值n};
2)数据类型[][] 数组名 = {值1,值2,值3…值n};
eg:int[][] arr = new int[][]{{1,2},{3,4},{5,6.4}};
int[][] arr = {{1,2},{3,4},{5,6.4}};
② 动态创建
1)数据类型[][] 数组名 = new 数据类型[第一维长度][];
2)数据类型[][] 数组名 = new 数据类型[一维长度][二维长度];
3)数据类型[][] 数组名;
数组名 = new 数据类型[一维长度][二维长度];
eg:int[][] arr = new int[3][];
int[][] arr = new int[2][4];
int[][] arr;
arr = new int[2][];

错误声明方法:
int[][] arr = new int[][];
int[][] arr = new int[][2];
2、数组遍历
(1)for
①一维
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]);
}
②二维
for(int i = 0;i < arr.length;i ++){
for(int j = 0;j<arr[i].length;j++){
System.out.print(arr[i][j]);
}
}
(2)foreach
①一维
for(int e : arr){
System.out.print(e);
}
②二维
for(int[] e : arr){
for(int a:e){
System.out.print(a);
}
}

3、冒泡排序:比较与交换
(1)将前一位数和后一位数,即arr[j]与arr[j + 1]比较,将较大或较小的数交换到后面。
for(int i = 0;i < arr.length - 1;i ++){
for(int j =0;j < (arr.length-1)-i;j ++){
if(arr[j] >arr[j +1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
(2)用arr[0]依次和后面的数进行比较,将最大或最小的数放到最arr[0]位置,再由arr[1]一次和后面的数字比较,将最大或最小的数字放到arr[1]位置,依次类推
for(int i = 0;i < arr.length-1;i ++){
for(int j = i +1;j < arr.length;j++){
if(arr[i]<arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
4、二分查找:最小值、最大值、中间值
public int binarySearch(int[] arr,int a){
int minIndex = 0;//最小下标
int maxIndex = arr.length-1;//最大下标
int middleIndex = (minIndex + maxIndex)/2;//中间下标
while(minIndex <= maxIndex){//查找结束循环条件,最小下标大于最大下标
if(arr[middleIndex] == a){//
return middleIndex;
}else if(arr[middleIndex] > a){//若目标数字小于中间数字,则向趋于小的方向查找
maxIndex = middleIndex - 1;
}else{//否则向趋于大的方向查找
minIndex = middleIndex + 1;
}
middleIndex = (minIndex + maxIndex)/2;
}
return -1;
}
5、增强for循环foreach
结构
for(数据类型 e : 源){
循环体
}
eg:
int[] arr = {a};
for(int a : arr){
System.out.print(a);
}
注:源是数组或集合
6、可变参数
数据类型 … 变量名
eg:
public int getSum(int … arr){
int sum = 0;
for(int e:arr){
sum += e;
}
return sum;s
}
注:一个方法只能有一个可变参数,且可变参数必须放在不同形参的最后面
7、工具类的使用
(1)格式:
包(路径).类名.方法名();
eg: java.util.Arrays.toString();
java.util.Arrays.sort();

java.util——包、路径
Arrays——类名
toSring()/sort()——方法名

猜你喜欢

转载自blog.csdn.net/weixin_43842554/article/details/89874876