查找--二分算法
public class HellowWorld { public static void main(String[] argv ) { int[] arr= new int[]{1,3,6,9,13,16,21,26,30,35}; int num=30;//要查找的值 int low=0;//最左边的下标值 int high=arr.length-1;//最右边的下标值 int mid=(low+high)/2; while(arr[mid]!=num&&low!=high) { //arr[mid]<num 代表要找的值在中间的右边 if(arr[mid]<num ) { low=mid+1; } //arr[mid]>num 代表要找的值在中间的左边 else if(arr[mid]<num ) { high=mid-1; } mid=(low+high)/2; //重新计算中间值 } if(low==high) { System.out.println("没有这个值"); } else { System.out.println("下标是:"+mid); } }//endmain }//endclass
红色的是重点 二分需要是有序的数组 缺点:1.查找数在很前面 ,当我的数比较靠前的时候,依次查找可能更快点 2.增删操作不具备随意性