首页 > 试题广场 >

一个排好序的数组总共有 152 个元素,用二分查找算法找到第

[问答题]
个排好序的数组总共有 152 个元素,用二分查找算法找到第 12 个元素(首个元素为 1 ),比较的元素依次为多少?写出结果的同时用任意种语言实现二分查找算法。 (请用代码实现)
#include<vector>
 
int fun(std::vector<int>& nums, int target) {
    int left = 0;
    int right = nums.size() - 1;
    while(left <= right){
        int mid = left + (right - left) / 2;
        if(nums[mid] == target){
            return mid;
        }
        else if(nums[mid] < target){
            left = mid + 1;
        }
        else if(nume[mid] > target){
            right = mid - 1;
        }
    }
    return -1;
}
发表于 2020-03-03 19:37:46 回复(0)
import java.util.*; public class Main { public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int target = scanner.nextInt();
        Find find = new Find();
        find.BinarySearch(n,target);

    }

} class Find { public int BinarySearch(int n, int target){ int left = 1; int right = n - 1; int zz = 0; while(left <= right) { int mid = left + (right - left) / 2; if (mid == target) {
                System.out.println(mid); return mid;
            }else if (mid < target) {
                left = mid+1;
            }else if (mid > target) {
                right = mid -1;
            }
            zz = mid;
            System.out.println(mid);
        } return zz;
    }
}
发表于 2023-07-31 11:32:19 回复(0)