数组格式:
1 int[] arr=new int[5];
2 int[] arr=new int[]{3,5,1,7};
int[] arr={3,5,1,7};
遍历数组(常用方式):
求和:
int [] arr={3,5,1,7};
int sum=0;
for(int i=0;i<arr.length;i++)
{
sum+=arr[i];
System.out.print(sum);
}
数组取最值:
一,
int max=arr[0];
int[] arr={1,3,5,7};
for(int i=1;i<arr.length;i++)
{
if(arr[i]>max)
max=arr[i];
}
System.out.println(max);
二。
int min=0;
int[] arr={1,3,5,7};
for(int i=1;i<arr,length;i++)
{
if(arr[i]<arr[min])
min=i;
}
System.out.println(arr[min]);
折半查找数数中的某值(二分法):
前提是
数组有序
int[] arr={1,2,3,4,5,6};
int index=getIndex(arr,2); //key为2
int min=0,max=arr.length-1,mid;
while(min<=max)
{
mid=(min+max)/2;
if(key>arr[mid])
min=mid+1
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
数组排序:
内存方式排序(最效率) Arrays.sort(arr);
选择排序:(结果打印需要遍历)
0角标和后面角标比较,符合条件就换位
int[] arr={6,2,1,3,8};
for(int i=0;i<arr.length-1;i++) //
arr.length-1 因为一开始比较时就已经能定好最大值了,所以可以不比较
{
for(int j=i+1;j<arr,length;j++) //和角标1比较
{
if(arr[i]>arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
冒泡排序法:
相邻的两个元素进行比较,如果符合条件就换位
第一圈最值出现在最后位
外循环负责第几次比较
for(int x=0;x<arr.length-1;x++)
{
for(int y=0;y<arr.length-x-1;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arry[y+1];
arr[y+1]=temp;
}
}
}
二维数组:
int [][] a=new int[3][4];
3 :代表有3个一维数组
4:每一个数组中的元素