Page 128 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 128
1. x->name 쪽이 작으면(알파벳 순서의 앞쪽이면) 음수
2. x->name과 y->name이 같으면 0
3. x->name 쪽이 크면(알파벳 순서의 뒤쪽이면) 양수
strcmp 함수의 자세한 내용은 08장에서 살펴봅니다.
Q6 요소의 값이 내림차순으로 정렬된 long형 배열에서의 검색을 bsearch 함수를 사용하여
연습
문제 프로그램을 작성하세요.
Q7 bsearch 함수와 같은 형식으로 호출할 수 있는 다음 함수를 작성하세요. 단, 선형 검색 알
고리즘을 사용하고, 배열은 정렬되어 있지 않아도 좋습니다.
void *seqsearch(const void *key, const void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
Q8 bsearch 함수와 같은 형식으로 호출할 수 있는 다음 함수를 이진 검색 알고리즘을 사용하
여 작성하세요.
void *binsearch(const void *key, const void *base, size_t nmemb,
size_t size, int(*compar)(const void *, const void *));
Q9 bsearch 함수와 같은 형식으로 호출할 수 있는 다음 함수를 작성하세요. 이때 Q5(115쪽)
처럼 이진 검색 알고리즘을 사용하여 일치하는 요소의 검색에 성공하면 그 위치에서 앞쪽으로 선
형 검색을 수행하여 가장 앞쪽의 요소에 대한 포인터를 반환하세요.
void *bsearchx(const void *key, const void *base, size_t nmemb,
size_t size, int(*compar)(const void *, const void *));
128 C 알고리즘