이진 탐색에 대한 두 가지 코드.
# 실행 조건
- 유일한 값들이어야 함 (중복x).
- 오름차순 정렬 후 실행해야 함.
# 구현 방식
- 재귀함수 (bsearch_recursive)
- while 반복문 (bsearch_loop)
#include <stdio.h>
#include "bsearch.c"
void bbsort(int *arr, int length);
int bsearch_recursive(int *arr, int begin, int end, int target);
int bsearch_loop(int *arr, int target, int length);
int main( )
{
int arr[] = {11, 9, 1, 5, 15, 3, 7, 13};
int target = 7;
int result;
int length;
length = sizeof(arr)/sizeof(int);
bbsort(arr, length);
//By Recursive
result = bsearch_recursive(arr, 0, length-1, target);
//By Loop
result = bsearch_loop(arr, length, target);
if(result == -1)
{
printf("Not Found.
");
}
else
{
for( int i=0 ; i<length ; ++i )
{
printf( "%d ", arr[i] );
}
printf("
Found Index : %d.
", result);
}
return 0;
}