二分查找的两种实现方式

来源:互联网 发布:怎样分享淘宝宝贝 编辑:程序博客网 时间:2024/05/22 15:42

第一种是递归查找

第二种是非递归查找

public class testMain {    public static void main(String args[]){        int array[] = new int[]{1, 2, 2, 3, 4 ,5, 6 ,7 ,8};        int res = binarySearch(array, 0, 8, 4);        int res1 = binarySearch1(array, 0, 8, 4);        System.out.println("res = "+res);        System.out.println("res = "+res1);    }    //使用递归的方式    public static int binarySearch(int array[], int left, int right, int target){        if(left < right){            int mid = (left + right)/2;            if(array[mid] == target){                return mid;            }            if(target < array[mid]){                return binarySearch(array, left, mid-1, target);            }            if(target > array[mid]){                return binarySearch(array, mid+1, right, target);            }        }        return -1;    }    //使用普通的方式    public static int binarySearch1(int array[], int left, int right, int target){        while(left <= right){            int mid = (left + right)/2;            if(array[mid] == target){                return mid;            }            if(target < array[mid]){                right = mid-1;            }            if(target > array[mid]){                left = mid+1;            }        }        return -1;    }}


原创粉丝点击