码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-12-31 23:38:16      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:arch   new   目标   索引   test   测试案例   读者   逻辑   lse   

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

废话不多说,直接看题

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

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

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

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

标签:arch   new   目标   索引   test   测试案例   读者   逻辑   lse   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!