Advertisement

二分查找(Binary Search):1道基础题+4道变种题

阅读量:
  1. 二分查找的实施基础:有序 数组
  2. 为使“二分查找”适用于有序链表 —— 引入了跳表 这一数据结构
  3. 解题思路:采用递归或循环方式
  4. 编写二分查找程序的关键在于:将搜索区间 始终牢记于心!!

一、一道简单题

  1. 有序数组
  2. 无重复元素
  3. 设有一个包含 n 个元素且按升序排列的整型数组 nums,以及一个目标值 target,编写一个函数用于在 nums 中查找 target。若目标值存在,则返回其对应的索引位置;若不存在,则返回 -1。【寻找一个数
复制代码
       public int search(int[] nums, int target) {
        //搜索区间为左闭右闭:[left, right]
        int left = 0, right = nums.length - 1;
    
        //当搜索区间为空时,跳出循环
        while(left <= right) {
            int mid = left + (right - left) / 2;
    
            if(nums[mid] == target) {

全部评论 (0)

还没有任何评论哟~