折半查找

来源:互联网 发布:现代汉语词典软件 编辑:程序博客网 时间:2024/04/30 08:49
/*需求:折半查找某元素思路:通过不断的折半,找到目标元素步骤:1.min=0;max=length-1;mid=(min+max)/22.如果mid比key大,那么max改变问mid-1 如果mid比key小,min改为mid+13.找到就立即结束,如果min比max大,那就找不到,返回-1*/class  HalfSearch{public static void main(String[] args) {int [] arr={1,2,3,6,7,9};int result=getIndex(arr,1);System.out.println(result);}//遍历查找public static int travelSearch(int [] arr,int key){for(int i=0;i<arr.length;i++){if(arr[i]==key){     return arr[i];}}return -1;}//折半查找public static int halfSearch(int [] arr,int key){int min=0,max=arr.length-1,mid=(min+max)/2;while(min<=max){if(arr[mid]<key)min=mid+1;else if(arr[mid]>key)max=mid-1;else return arr[mid];mid=(min+max)/2;}return -1;}//折半查找插入的位置public static int getIndex(int [] arr,int key){int min=0,max=arr.length-1,mid;if(min<=max){   mid=(min+max)>>1;           if(arr[mid]<key)   min=mid+1;   else if(arr[mid]>key)   max=mid-1;   else    return mid;}return min;}}

0 0
原创粉丝点击