记录一次面试中二分查找的算法题

Posted igubai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次面试中二分查找的算法题相关的知识,希望对你有一定的参考价值。

总结一下本次二面的一道算法题,当时代码写到一半,发现自己逻辑好像有问题,然后就没办法往下写了,导致最终没做出来,面试出来百度了一下,瞬间感觉自己.........

废话不多说,直接看题

需求:写一个二分查找,用迭代的方式去实现,并设计该算法的测试案例

面试完后看见这个题目真是简单,直接代码写起

public class Algorithm{
    public int binarySearch(int[] nums,int target){
        int left = 0;
        int right = nums.length-1;
        while(left<=right){
            int mid =(left+right)/2;
            if(nums[mid]==target){
                return mid;
            }
            else if(nums[mid]<target){
                left = mid +1;
            }
            else if(nums[mid]>target){
                right = mid-1;
            }
        }
        return -1;
    }
}

测试案例:

public class AlgorithmTestcase{
    public static void main(String[] args){
        Algorithm algorithm = new Algorithm();
        int [] nums = {1,3,5,7,8,9};
        int target = 7;
        System.out.println(algorithm.binarySearch(nums,target))
    }
}

当然,我这里只写了一个正向测试案例,因为我上面的写的二分法是如果能查到目标值,则返回目标只的索引下标,如果target在nums集合中如果没有找到,则返回-1,这个案例请读者自行去写。

以上是关于记录一次面试中二分查找的算法题的主要内容,如果未能解决你的问题,请参考以下文章

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

LeetCode面试刷题技巧-二分查找算法代码思路解析

算法面试题——二分查找套路法

面试100题:二分查找

大数据面试题十四 · 数据结构与算法 · 二分查找

⭐算法入门⭐《二分枚举》中等02 —— LeetCode 面试题 10.09. 排序矩阵查找