Everything

bsearch


二分割検索を行います。

[指定形式]

// C言語の場合

#include <stdlib.h>

void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, long (*compar)(const void *, const void *));

 

// C++言語/EC++言語の場合

void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

[引数]

key 検索するデータへのポインタ

base 検索対象となるテーブルへのポインタ

nmemb 検索対象のメンバの数

size 検索対象のメンバのバイト数

compar 比較を行う関数へのポインタ

[戻り値]

一致するメンバが検索できた時:一致したメンバへのポインタ

一致するメンバが検索できなかった時:NULL

[備考]

keyの指すデータと一致するメンバを、baseの指すテーブルの中で二分割検索法によって検索します。比較を行う関数は、比較する2つのデータへのポインタp1(第1引数)、p2(第2引数)を受け取り、以下の仕様に従って結果を返してください。

*p1<*p2の時、負の値を返します。

*p1==*p2の時、0を返します。

*p1>*p2の時、正の値を返します。

検索対象となる各メンバは、昇順に並んでいる必要があります。