/*
* http://sosal.tistory.com/
* made by so_Sal
*/
binary search는 이미 C Library에서 구현해있습니다.
따라서 우리는 이진탐색이 필요할 때, 구현하지 않고
라이브러리에서 함수를 가져다 사용하면 됩니다.
#include <stdlib.h>
void *bsearch(const void *key, <-- 찾고자 하는 값 주소
const void *base, <-- 정렬된 데이터 배열의 주소
size_t nmemb, <-- 데이터 요소의 개수
size_t size, <-- 한 데이터 자료형의 크기
int (*compar)(const void *, const void *)); <-- 비교 함수 포인터
예제
#include<iostream>
#include<cstring>
#include<time.h>
#include<stdlib.h>
using namespace std;
int compare(const void* elem1,const void* elem2){
return *(int*)elem1 - *(int*)elem2;
}
int main(){
srand(time(0));
int a[30000];
int j=0;
for(int i=0;i<30000;i++,j+=2)
a[i] = j;
const int target=59880;
int result = (int)bsearch(&target,a,30000,sizeof(int),compare);
if(result)
cout<<"존재합니다."<<endl;
else
cout<<"존재하지 않습니다."<<endl;
}
'Programing > C- programing' 카테고리의 다른 글
이진 탐색트리 삭제 포함 소스 (0) | 2010.08.23 |
---|---|
이진탐색트리 자동 생성 소스 (0) | 2010.08.23 |
탐색 : 이진탐색 (0) | 2010.08.23 |
링크드리스트 :: 추가,삭제,출력,찾기,값변경,위치변경,종료 (0) | 2010.08.22 |
C-Library qsort() 퀵 정렬 함수 (0) | 2010.08.22 |