이진 검색

Bee·2023년 1월 9일
0

자바스크립트

목록 보기
4/4

✔️ 정렬된 배열에서 원하는 데이터를 찾는 이진 검색 (Binary Search)

  • 작은 것에서 큰 것으로 정렬하는 것을 오름차순
  • 큰 것에서 작은 것으로 정렬하는 것을 내림차순
import java.util.Scanner;

public class BinarySearch {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int[] a = {39, 41, 53, 68, 72, 84, 88, 92, 97};
		int x, pos, left, right, middle;

		System.out.print("x =");
		x = sc.nextInt();
		pos = -1;
		left = 0;
		right = a.length -1;
		sc.close();
		
		while (pos == -1 && left <= right){
			middle = (left + right) / 2;
		if(a[middle] == x){
			pos = middle;
		} else if(a[middle] > x){
			right = middle - 1;
		}else {
			left = middle +1;
		}
	}
		System.out.print("pos = %d\n",pos);
	}
}

❗이진 검색의 반복문은 루프 카운터를 사용하지 않고, 조건만 지정하므로 for가 아닌 while문을 사용한다.

profile
web front developer

0개의 댓글