二分搜索

    xiaoxiao2023-11-10  152

    lb指第一个元素下标,ub指最后一个元素下标

    public int binarySearch(int a[], int k, int lb, int ub) { //递归实现 int mid = -1; if(lb <= ub) { mid = (ub + lb) / 2; if(a[mid] == k) { return mid; }else if(a[mid] < k) { return binarySearch(a, k, mid+1, ub); }else return binarySearch(a, k, lb, mid-1); } return -1; } public int binarySearch2(int a[], int k, int n) { int mid,ub=0,lb=n-1; while(lb<=ub) { mid = (lb + ub) / 2; if(a[mid] == k) return mid; else if(a[mid] < k) { lb = mid+1; }else ub = mid-1; } return -1; }
    最新回复(0)