#include <stdio.h>


// 선행조건 : 배열에 저장된 데이터는 정렬되어 있어야 함.


int BSearch(int ar[], int len, int target) {

int first = 0;

int last = len - 1;

int mid;


while (first <= last) {

mid = (first + last) / 2;


if (ar[mid] == target) {

return mid;

}

else if (ar[mid] > target) {

last = mid - 1;

}

else {

first = mid + 1;

}

} return -1;


int main(void) {

int arr[] = { 1,3,5,7,9 };


int idx;


idx = BSearch(arr, sizeof(arr), 5);

if (idx == -1) {

printf("탐색 실패\n");

}

else {

printf("탐색 인덱스 : %d\n", idx);

}


idx = BSearch(arr, sizeof(arr), 23);

if (idx == -1) {

printf("탐색 실패\n");

}

else {

printf("탐색 인덱스 : %d\n", idx);

}

}


뭐가 문제지??

둘다 탐색실패가뜸.

위에 메서드를 자세히봐도 잘못된건 안보이는데