소프트웨어 개발/Algorithm

Binary Search

Leo's notes 2019. 3. 5. 10:57

Example

#include <stdio.h>
#include <stdlib.h>

int binary_search(int *arr, int target, int left, int right)
{
if (left >= right)
return 0;

int mid = (left + right) / 2;
if (arr[mid] == target)
return 1;

return arr[mid] > target ? binary_search(arr, target, left, mid) : binary_search(arr, target, mid + 1, right);
}

int compare(const void *a, const void *b)
{
return *((int *)a) - *((int *)b);
}

int main()
{
int arr[10] = {3, 6, 9, 2, 4, 8, 1, 5, 7, 0};
qsort(arr, 10, sizeof(int), compare);
printf("%d\n", binary_search(arr, 5, 0, 9));
return 0;
}