티스토리 뷰
#include <stdio.h>
int BSearch(int ar[], int len, int target){
int first;
int last = len - 1;
int mid;
int opCount = 0;
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;
}
}
opCount++;
}
printf("비교 연산횟수 : %d \n", opCount);
return -1;
}
int main(void){
int arr1[500] = {0,};
int arr2[5000] = {0,};
int arr3[50000] = {0,};
int idx;
idx = BSearch(arr1, sizeof(arr1) / sizeof(int), 1);
if(idx == - 1){
printf("탐색 실패\n");
}
else{
printf("타겟 저장 인덱스 : %d \n", idx);
}
idx = BSearch(arr2, sizeof(arr2) / sizeof(int), 2);
if(idx == -1){
printf("탐색 실패\n");
}
else{
printf("타겟 저장 인덱스 : %d \n", idx);
}
idx = BSearch(arr3, sizeof(arr3) / sizeof(int), 3);
if(idx == -1){
printf("탐색 실패\n");
}
else{
printf("타겟 저장 인덱스 : %d \n", idx);
}
return 0;
}
OUTPUT
비교 연산횟수 : 9 탐색 실패 비교 연산횟수 : 13 탐색 실패 비교 연산횟수 : 16 탐색 실패
'C, C++ > 데이터구조 & 자료구조' 카테고리의 다른 글
C언어 재귀 팩토리얼(Factorial) 예제 (0) | 2016.06.06 |
---|---|
C언어 기초 재귀(Recursive) 예제 (0) | 2016.06.06 |
C언어 재귀 기초 팩토리얼 예제 (0) | 2016.06.06 |
C언어 이진탐색 알고리즘 (Binary Search Algorithm) (0) | 2016.06.06 |
C언어 순차탐색 알고리즘 (Linear Search Algorithm) (0) | 2016.06.06 |
티스토리 방명록
- Total
- Today
- Yesterday
Contact: j0n9m1n1@gmail.com