이분검색

OneTwoThree·2023년 6월 29일

알고리즘

목록 보기
14/22
  • 순차검색 : O(n)
  • 이분검색(최악시간복잡도) : O(logN)
package Sorting_Searching;

import java.util.Arrays;
import java.util.Scanner;

public class problem0508RE {
    public static void main(String[] args){
        //입력받기
        Scanner in=new Scanner(System.in);
        int length = in.nextInt();
        int find = in.nextInt();
        int[] arr = new int[length];

        for (int i=0; i<length; i++){
            arr[i] = in.nextInt();
        }
        //입력받기끝

        //정렬하기
        Arrays.sort(arr);

        //이분탐색
        int lt =0, rt=length-1;
        while (lt<=rt){
            int mid = (lt+rt)/2;
            if (arr[mid]==find) {
                System.out.println(mid+1);
                break;
            } else if (arr[mid]>find){
                rt = mid-1;
            } else {
                lt = mid+1;
            }

        }
        
        return ;
    }
}

0개의 댓글