English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 대상지향(I)

Java 대상지향(II)

Java 대상지향(III)

Java 예외 처리

Java 리스트(List)

Java 큐(큐)

Java 맵 셋

Java Set 집합

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램에서 이진 검색 알고리즘 구현

Java 예제 모든 것

이 예제에서, 우리는 Java에서 이진 검색 알고리즘을 구현하는 방법을 배웁니다.

Java의 이진 검색 구현을 배우기 전에, 이진 검색 알고리즘의 작동 원리를 이해해야 합니다.

예제: 이진 검색 알고리즘을 구현한 Java 프로그램

import java.util.Scanner;
//Java의 이진 검색
class Main {
  int binarySearch(int array[], int element, int low, int high) {
    //이 과정을 반복하여, 포인터의 높이(high)와 낮(low)이 같아지면 중단합니다
    while (low <= high) {
      //mid 요소의 인덱스를 가져옵니다
      int mid = low + (high - low) / 2;
      //검색할 요소가 mid 요소라면
      if (array[mid] == element)
        return mid;
      //요소가 mid 요소보다 작다면
      //mid의左侧만 검색
      if (array[mid] < element)
        low = mid + 1;
      //요소가 mid 요소보다 크다면
      //mid의右侧만 검색
      else
        high = mid - 1;
    }
    return -1;
  }
  public static void main(String args[]) {
    //Main 클래스의 객체를 생성합니다
    Main obj = new Main();
    //정렬된 배열을 생성합니다
    int[] array = { 3, 4, 5, 6, 7, 8, 9 };
    int n = array.length;
    //사용자에서 입력을 가져옵니다. 검색할 요소
    Scanner input = new Scanner(System.in);
    System.out.println("검색할 요소를 입력하세요:");
    //검색할 요소
    int element = input.nextInt();
    input.close();
    //이진 검색 메서드 호출
    //파라미터 전달: 배열, 요소, 첫 번째와 마지막 요소의 인덱스
    int result = obj.binarySearch(array, element, 0, n - 1);
    if (result == -1)
      System.out.println("Not found");
    else
      System.out.println("요소를 찾았습니다, 인덱스 " + result);
  }
}

출력1

검색할 요소를 입력하세요:
6
요소를 찾았습니다, 인덱스  3

여기서 우리는 사용했습니다Java 스캐너 클래스사용자에서 입력을 가져옵니다. 사용자의 입력에 따라, 우리는 이진 검색을 사용하여 배열에 해당 요소가 있는지 확인했습니다.

같은 작업을 수행하기 위해 재귀 호출도 사용할 수 있습니다.

  int binarySearch(int array[], int element, int low, int high) {
    if (high >= low) {
      int mid = low + (high - low) / 2;
      // mid 요소가 검색할 요소인지 확인
      if (array[mid] == element)
        return mid;
      //mid의 왼쪽 부분을 검색
      if (array[mid] > element)
        return binarySearch(array, element, low, mid - 1);
      //mid의 오른쪽 부분을 검색
      return binarySearch(array, element, mid + 1, high);
    }
    return -1;
  }

여기서는该方法binarySearch()가 요소를 찾거나 if 조건이 실패할 때까지 자신을 호출합니다.

Java 예제 모든 것