바이너리 서치

김대익·2022년 3월 31일
0
post-thumbnail

이진 검색은 O(lg n)시간복잡도를 가진다





int search (int [] nums, int target) {
	int left = 0;
    int right = nums.length - 1;
    //인덱스 설정
    
    while (left <= right) {
    //index가 서로 지나가면 찾지 못했다는 뜻
    	int pivot = (left + right) / 2
        //pivot식 설정
        if (nums[pivot] == target) {
        	return pivot;
            //찾는 값을 찾았으면 현재 pivot 리턴
        } else if (nums[pivot] < target) {
        	//pivot안의 보다 찾는 값이 크면
        	left = pivot + 1;
            //왼쪽 index를 pivot의 오른쪽으로 변경
        } else {
        	//pivot안의 값보다 찾는 값이 작으면
            right = pivot - 1;
            //오른쪽 index를 pivot의 왼쪽으로 변경
        }
    }
}

0개의 댓글