首页 > 编程语言 > 详细

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

时间:2019-12-31 22:34:31      阅读:102      评论:0      收藏:0      [点我收藏+]

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

废话不多说,直接看题

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

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

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,这个案例请读者自行去写。

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

原文:https://www.cnblogs.com/igubai/p/12127600.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!