이진 검색 알고리즘 문제에 기록 인터뷰

이 문제에 대한 두 개의 얼굴을하는 알고리즘을 요약하면, 코드가 자신의 논리가 문제가있는 것 같습니다 발견, 절반을 작성 한 후 궁극적으로 느끼는 즉시 면접 바이두의 순간 그것을 수행하지 않고 선도, 아래로 쓸 수있는 방법이 없습니다 .. .......

아도 봐, 직접 제목

요구 사항 : 달성하기 위해 반복적 인 방법을 사용하여, 이진 검색을 쓰고, 알고리즘 설계 테스트 케이스

인터뷰 후이 주제에 정말 간단하고에서 코드를 작성하는 간단 참조

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))
    }
}

물론, 나는 그들이 찾을 수있는 경우 이분법이 목표 값보다 쓰기 때문에 컬렉션이 반환되는 경우 대상이 nums에서 발견되지 않는 경우는, 인덱스 지수의 목표를 반환 긍정적 인 테스트 케이스를 작성하는 그냥 여기있어 -1이 경우 독자는 자신을 작성합니다.

추천

출처www.cnblogs.com/igubai/p/12127600.html