バイナリサーチアルゴリズムの問題で録音インタビュー

コードが半分に書かれた、この問題のための2つの顔をするアルゴリズムを要約し、ロジックが問題を抱えているようだ自分自身を発見し、書き留めする方法がないために、最終的につながる面接のBaiduの瞬間をそれを行うには、瞬時に感じませんでした。.. .......

騒ぎ、見た目に直接タイトル

要件:達成するための反復的な方法を使用して、バイナリ検索を書き、アルゴリズム設計のテストケース

インタビューの後、このトピックはからの書き込みコードには本当にシンプルで簡単です見ます

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に見つからない場合、彼らは見つけることができる場合、私の書き込み二分法が目標値を上回っているので、もちろん、私はここで、正のテストケースを書くことだ、それは、インデックスindexの唯一のゴールを返します。 -1この場合、読者は自分自身を書き込みます。

おすすめ

転載: www.cnblogs.com/igubai/p/12127600.html