Java binarysearch方法

今日は、明日の技術で「マスターへのエントリからJavaの、」本は、Javaを学ぶために、クエリの配列は、本の面で、ここでは機械や実験でなく、同じ気持ちを一つのことを理解することはできません参照して、その後、百度、気持ちは、聖書が言うことです間違っている、今何を記録しています。


 

java.util.Arraysをインポートするファーストクラスの配列のソートの必要性

2つのbinarysearchの使用、アレイ全体で検索、指定した範囲の探索は、実際には、前者は後者の特別な場合と考えることができ、類似しており、そこです。

使用法1

binarySearch(オブジェクト[]、オブジェクトキー)

オブジェクトは、ターゲット配列で、キー目標値、ターゲット配列をしなければならないことを要求並べ替え、それ以外の場合は、右の結果を見つけることができません

お問い合わせは、二つの結果以外の何ものでもありません、1はターゲット配列の目標値であり、他ではありません

したがって、戻り値も正と負の両方に分割され、標的配列と戻り指標目標値は(存在する場合、同じ複数、を決定するために見つけることができないことは、二分探索であるため)

アレイは、ターゲットリターン内にない - (インデックス+ 1要素の第一目標値よりも大きい)。同様に、目標値よりも配列の値が小さい場合、リターン - 。(配列の長さ+1)

例:

輸入java.util.Arrays。
パブリック クラス数{
     公共 静的 ボイドメイン(文字列[] argsが){
     int型 [] = 新しい INT [] {1、3、4、6、8、9 }。  
    INT X1 = Arrays.binarySearch(5 )。  
    INT X2 = Arrays.binarySearch(4 )。  
    INT X3 = Arrays.binarySearch(A、0 );  
    INT X4 = Arrays.binarySearch(10 )。
    System.out.println(X1 + " "+ X2 +" "+ X3 +"" + X4)。
    }             
}

出力:

-4 2 -1 -7

また、理解することができます。

 

それぞれの位置出力に対応。

シンタックス2

binarySearch(オブジェクト[]、INTたfromIndex、INTたtoIndex、オブジェクトキー)

この範囲内で検索したfromIndex(付属)からtoIndexのに期間の開始と終了を表す2つのint型の変数、(含まれていない)を追加しました、戻り値は、前の使用法1に似ている、唯一異なるときの地区であればそれは、あります目標値よりも小さく、それが返されます - (toIndexの+ 1)、目標値よりも間隔の値が大きい場合、リターン - (fromIndexの+ 1)、理解しようとして難しいことではないと思いますが、1と同等たfromIndexの使用それが0とアレイtoIndexの用法2の長さです。

おすすめ

転載: www.cnblogs.com/dyhaohaoxuexi/p/12234145.html