[Algorithm] 이진탐색 Binary Search

KingU·2021년 12월 18일
0

Algorithm

목록 보기
8/22
post-thumbnail

정의:


  • 자료들을 반씩 나누어 가면서 탐색을 진행하는 것

  • 자료들이 반드시 정렬되어 있어야 탐색이 가능






구현:


int i, key, count, n, result;
int arr[6] = {1, 2, 3, 4, 5, 6};
int search(){
	int mid;
    if(start <= end){
    	count++;
        mid = (start + end) / 2;
        if(key == arr[mid]){
        	return count;
        }
        else if(key < arr[mid]){
        	return search(start, mid-1);
        }
        else if(key > arr[mid]){
        	return search(mid+1, end);
        }
    }
    return -1;
}

int main(){
	n = sizeof(arr) / sizeof(int);
    printf("탐색할 곳은?");
    scanf("%d", &key);
    result = search(0, n-1);
    if(result == -1)
    	printf("탐색실패입니다");
    else
    	printf("탐색성공이며 탐색횟수는 %d회입니다.", key);
    return 0;
}





당신의 시간이 헛되지 않는 글이 되겠습니다.
I'll write something that won't waste your time.

profile
원하는 것을 창조하고 창조한 것을 의미있게 사용하자

0개의 댓글