반응형
#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 (target == ar[mid]) //중앙에 저장값이 타겟이면
return mid; //탐색끝
else //타겟이 아닐경우
{
if (target < ar[mid]) //타겟이 중앙값보다 작은경우
last = mid - 1;
else //그외의 경우
first = mid + 1;
}
}
return -1; //탐색실패할경우 -1 반환
}
int main()
{
int arr[] = { 1,3,5,7,9 };
int idx;
idx = BSearch(arr, sizeof(arr) / sizeof(int), 7);
if (idx == -1)
printf("탐색실패\n");
else
printf("타겟인덱스: %d\n", idx);
idx = BSearch(arr, sizeof(arr) / sizeof(int), 4);
if (idx == -1)
printf("탐색실패\n");
else
printf("타겟인덱스: %d\n", idx);
return 0;
}
반응형
'Programming > Data Structure and Algorithm' 카테고리의 다른 글
윤성우의 열혈자료구조 문제 04 - 1연결리스트 익숙해지기 (0) | 2021.12.25 |
---|---|
자료구조 리스트(List) 기초 개념정리 (0) | 2021.12.25 |
윤성우의 열혈자료구조 문제 03-1 (0) | 2021.12.25 |
하노이탑 c언어 예제 (자료구조) (0) | 2021.12.23 |
자료구조 기초 개념 (Data Structure) (빅오표기법) (0) | 2021.12.19 |