获取数组最值
int arr[] = 数组
int max= arr[0];
for(int i = 0;i < arr.length;i++){
if(arr[i] > (最小值反之)max){
max = arr[i];
}
}
System.out.println("数组arr最大值为:"+max);
选择排序
选择排序是一次和后面的元素进行比较,第一次比较得到最小值
for(int a=0;a<arr.length-1;a++){
for(int b=a+1;b<arr.length;b++){
if(arr[a]>arr[b]){
int temp=0;
temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
冒泡排序
一次比较两个元素,如果他们的顺序错误就把他们交换过来,最先获得最大值放右边
for(int a =0;a<arr.length-1;a++){//控制比较次数
for(int b=0;b<arr.length-1-a;b++){
if(arr[b]>arr[b+1]){
int c=0;
c=arr[b];
arr[b]=arr[b+1];
arr[b+1]=c;
}
}
}
System.out.println(Arrays.toString(arr));
数组的查找
一般查找:public int 函数名(int[] arr,int a){
for(int i = 0;i < arr.length;i++){
if(arr[i] == a){
return i;
}
}
return -1;数组的下标从0开始,-1代表没有找到,不存在此元素
}
二、折半查找
方法一:
public int 函数名(int[] arr,int a){
int start,end,mid;
start = 0;
end = arr.length - 1;
mid = (start+end)/2;
while(arr[mid] != a){
if(a > arr[mid]){
start = mid + 1;
}else{
end = mid - 1;
}
if(start > end){
return -1;
}
mid = (start+end)/2;
}
return mid;
}
优点:折半区间条件判断循环,运行运算步骤更短,优化
方法 二
public int 函数名(int[] arr,int a){
int start = 0,end = arr.length-1,mid;
while(start <= end){
mid = (end + start)/2;
if(a > arr[mid]){
start = mid + 1;
}else if(a < arr[mid]){
end = mid - 1;
}else{
return mid;
}
}
return -1;
}
封装方法:main方法{}之后,在类中的一段具有特定功能的小程序,可在main方法里调用