C 程式設計/stdlib.h/bsearch
外觀
在 C 標準庫 中,bsearch 是一個用於使用 二分搜尋演算法 在排序陣列中搜索物件的函式。[1]
bsearch 是一個通用函式,它可以在任何大小的排序陣列中搜索,其中包含任何型別的物件或指向物件的指標,以及使用任何型別的比較謂詞。但是,通用性是以型別安全為代價的,因為 bsearch 在 void 指標上執行;並且在函式呼叫數量上也很昂貴(因為每次比較都需要呼叫比較謂詞),這些呼叫具有很大的開銷。
void *bsearch(const void *key, const void *base, size_t nmemb, size_t size,
int (*compare)(const void *, const void *));
// notice nmemb before size, unlike fread and fwrite
bsearch() 函式返回指向陣列中匹配成員的指標,如果未找到匹配項,則返回 NULL。如果陣列具有多個匹配元素,則返回值將是指向這些元素之一的指標。哪個特定的元素未指定。[2]
- ↑ ISO/IEC 9899:1999 規範 (PDF). p. 318, § 7.20.5.1.
- ↑ UNIX 手冊頁:
man 3 bsearch