java数组的排序,最值

来源:互联网 发布:最新淘宝优惠券 编辑:程序博客网 时间:2024/05/19 15:19


 

数组格式:
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:每一个数组中的元素


 

 


0 0
原创粉丝点击