알고리즘: 데이터의 양이 많을 때 적합한 방식입니다. 이진 검색을 사용할 때 데이터는 순서대로 이루어져야 하며 반복되지 않아야 합니다. 기본 개념: 데이터가 오름차순으로 정렬되어 있다고 가정합니다. 주어진 값 x에 대해 현재 위치 값이 x와 같으면 검색이 성공합니다. 현재 위치 값, 그런 다음 시퀀스의 전반부에서 검색합니다. x가 현재 위치 값보다 크면 찾을 때까지 시퀀스의 후반부에서 검색을 계속합니다.
{ 12, 23, 34, 45, 56, 67, 77, 89, 90 } 배열이 있다고 가정합니다. 이제 지정된 값을 찾아 반환하기 위해 바이너리 메서드를 사용해야 합니다. 배열의 인덱스. 찾을 수 없으면 -1이 반환됩니다. 코드는 다음과 같습니다.
package cn.sunzn.dichotomy; public class DichotomySearch { public static void main(String[] args) { int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 }; System.out.println(search(arr, 12)); System.out.println(search(arr, 45)); System.out.println(search(arr, 67)); System.out.println(search(arr, 89)); System.out.println(search(arr, 99)); } public static int search(int[] arr, int key) { int start = 0; int end = arr.length - 1; while (start <= end) { int middle = (start + end) / 2; if (key < arr[middle]) { end = middle - 1; } else if (key > arr[middle]) { start = middle + 1; } else { return middle; } } return -1; } }
Java 프로그래밍의 이진 검색과 관련된 더 많은 기사를 보려면 PHP에 주목하세요. 중국사이트!