PS/inflearn java coding2022. 4. 10. 17:51

Binary search : 실행 전 오름차순 혹은 내림차순으로 정렬이 되어 있어야함.

이진 검색은 결정알고리즘에도 사용됨.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;




class Main {

	static int answer = 0;
	
	public static void main(String args[]) throws Exception {
		
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int m = in.nextInt();
		
		int [ ]arr = new int[n];
		
		for ( int i = 0 ; i < n ; i++) {
			arr[i] = in.nextInt();			
		}
		
		//selection sort.
		for (int i = 1 ; i < n ; ++i) {
			int tmp = arr[i];
			int j = 0; 
			for  ( j = i-1 ; j >= 0 ; j-- ) {				
				if( arr[j] > tmp)
					arr[j+1] = arr[j];
				else break;
			}
			arr[j+1] = tmp;			
		}
		
        //binary search
		
				
		int lt=0;
		int rt=n;

		while (lt <=rt) {
			int mid = (rt + lt)/2;
			if( arr[mid] == m) {				
				answer = mid + 1;
				break;
			} 
			if ( arr[mid] > m) 
				rt = mid-1;				
			else 
				lt = mid+1;									
		}		
        
		System.out.println(answer);
	}
		
		
	
}
ex)
input
8 32
23 87 65 12 57 32 99 81

output
3

'PS > inflearn java coding' 카테고리의 다른 글

결정알고리즘 연습 2  (0) 2022.04.10
결정알고리즘 연습 1  (0) 2022.04.10
Comparable 구현을 이용한 객체 정렬 예제  (0) 2022.04.10
LRU 연습문제  (0) 2022.04.10
정렬  (0) 2022.04.10
Posted by easy16