数组加强

数组加强

冒泡排序:

通过代码实现数组中元素的从小到大排列

思路:按角标从小到大的顺序将元素两两之间进行比较,如果前面元素的值比后面的大则交换值

if(arr[1]>arr[2]){

int temp=arr[1];

arr[1]=arr[2];

arr[2]=temp;

}

比较完所有次数最后一位会是数组的最大值,则开始的下一轮比较上一轮产生的最大值不参与


二分法:

查询一个元素在数组中的位置

思路:和数组中间位置(索引)进行比较,来判断其元素所属的范围区间,如果比中间值大则中间值(索引)+1位置为区间最小值,小于中间值则中间值(索引)-1位置为区间最大值,查找过程在最大值等于最小值是结束

static int getIndex(int num,int[] arr){

int minindex=0;//最小值

int maxindex=arr.length-1;//最大值

int midindex=(minindex+maxindex)/2;//中间值

while(minindex<=maxindex){//最小值等于最大值跳出循环

if(num>arr[midindex]){//判断区间

minindex=midindex+1;

}else if(num

maxindex=midindex-1;

}else if(num==arr[midindex]){//找到了返回值

return midindex;

}

midindex=(minindex+maxindex)/2;

}

return -1;

}

二维数组

概念:

二维数组本质是元素为一维数组的数组

语法:

动态创建:

数据类型[][]数组名=new数据类型[长度][长度];

静态创建:

数据类型[][]={{元素1,元素2},{元素1,元素2},{元素1,元素2}};

二维数组的遍历:

增强for循环遍历

public static void main(String[] args){

int[][] ar={{1,2,3},{4,5,6},{7,8,9}};

for(int[] e:ar){//forech遍历外层二维数组得到一维数组

for(int a:e){//forech遍历每一个数组得到元素

System.out.println(a);//打印元素

}

}

}

for循环遍历

for(int i=0;i<=ar.length-1;i++){

for(int j=0;i<=ar[i].length-1;j++){

System.out.print(ar[i][j]);

}

}

增强for循环

语法:

for(数据类型 e:源){//源可以是数组与集合

System.out.peintln(e);

}

执行过程;

每次从源中遍历的数据,都临时存放在里面,可以在循环内部,通过e取出到每一个元素

工具类

概念;

java中已经写好的类和方法直接拿出来使用就可以了

使用api文档


通过索引查找类


java.util包名


如何调用方法


可变参数

概念:

可变参数的概念:方法传入【实参】参数的个数可变

语法:

数据类型...参数名字

细节:

可变参数的语法细节

static void print(String name,int ... a){可以

static void print(int ... a,String name){不行

static void print(int ... a,String ... name){不行

可变参数的前面可以写普通的参数类型,不能写可变参数类型

可变参数的后面:什么都不能写

你可能感兴趣的:(数组加强)