1. 二分探索手順の説明
(1) まず、探索区間全体の中央位置を決定します Mid = (左 右)/2
( 2) 使用方法 検索対象のキーワード値と中央のキーワード値を比較し、
等しければ検索成功です
大きければ半分の検索を継続します。最後(右)の半分のエリア
未満の場合は、前(左)の半分のエリアで半分の検索を続行します
(3) 決定された縮小された値について、もう一度半分の式を押しますエリアに移動し、上記の手順を繰り返します。
最後に、検索が成功したか失敗したかの結果が得られます。二分探索の記憶構造は 1 次元配列に格納されます。ハーフサーチアルゴリズムの例
2. 要件
(1) シーケンシャルストレージ構造を使用する必要があります。
(2) キーワードのサイズ順に並べる必要があります。
3.例
public class Demo { public static void main(String[] args) { int[] arr={-1,0,3,5,9,12};//查找的数组 int searchNum=13;//查找的目标数 Arrays.sort(arr); int resultOne=binarySearchOne(arr,searchNum,0,arr.length-1); System.out.println(resultOne); int resultTwo=binarySearchTwo(arr,searchNum); System.out.println(resultTwo); } /** * 递归实现 * @param arr * @param searchNum * @param start * @param end * @return */ public static int binarySearchOne(int[] arr,int searchNum,int start,int end){ if(start>end) return -1; int middle=(start+end)/2; if(searchNum<arr>arr[middle]) return binarySearchOne(arr,searchNum,middle+1,end); else return middle; } /** * 非递归实现 * @param arr * @param searchNum * @return */ private static int binarySearchTwo(int[] arr, int searchNum) { int start=0; int end=arr.length-1; while(startarr[middle]) start=middle+1; else return middle; } return -1; } }</arr>
以上がJavaバイナリサーチ実装原理とコード実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。