> Java > java지도 시간 > 본문

Java 프로그래밍에서의 이진 검색

高洛峰
풀어 주다: 2016-12-19 16:16:02
원래의
1001명이 탐색했습니다.

알고리즘: 데이터의 양이 많을 때 적합한 방식입니다. 이진 검색을 사용할 때 데이터는 순서대로 이루어져야 하며 반복되지 않아야 합니다. 기본 개념: 데이터가 오름차순으로 정렬되어 있다고 가정합니다. 주어진 값 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에 주목하세요. 중국사이트!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿