이진 탐색 알고리즘을 재귀적으로 구현해보았다.

while문으로 loop되는 부분을 고려해보면 재귀적 구현의 방법이 나온다.


#include <stdio.h>

int BinarySearch(int *arr, int first, int last, int num)
{
    int mid = (first+last)/2;
    if(arr[mid]==num)
    {
        return mid;
    }
    else
    {
        if(arr[mid] < num)
            first = mid+1;
        else
            last = mid-1;
    }

    return BinarySearch(arr,first,last,num);
}

int main()
{
    int arr[5] = {1,3,8,14,25};
    
    printf("%d\n",BinarySearch(arr,0,4,3));

    return 0;
}


+ Recent posts