C语言库自带的二分查找函数bsearch函数的使用示例
生活随笔
收集整理的這篇文章主要介紹了
C语言库自带的二分查找函数bsearch函数的使用示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
bsearch
使用二分查找,查找一個被排序過的數(shù)組
依賴頭文件
#include <stdlib.h>
描述
key : 指向要查找的元素 base : 指向被查找的數(shù)組 nmemb : 被查找數(shù)組的大小 size : 被查找數(shù)組元素的大小 int (*compar)(const void *, const void *) : 比對的函數(shù)RETURN VALUE
查找到了就返回對應(yīng)的元素,查找不到就返回NULL
使用示例:
#include <stdio.h>#include <stdlib.h>#include <string.h>struct mi {int nr;char *name;} months[] = {{ 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },{ 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },{ 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" }};#define nr_of_months (sizeof(months)/sizeof(months[0]))static intcompmi(const void *m1, const void *m2){struct mi *mi1 = (struct mi *) m1;struct mi *mi2 = (struct mi *) m2;return strcmp(mi1->name, mi2->name);}intmain(int argc, char **argv){int i;qsort(months, nr_of_months, sizeof(struct mi), compmi);for (i = 1; i < argc; i++) {struct mi key, *res;key.name = argv[i];res = bsearch(&key, months, nr_of_months,sizeof(struct mi), compmi);if (res == NULL)printf("'%s': unknown month\n", argv[i]);elseprintf("%s: month #%d\n", res->name, res->nr);c}exit(EXIT_SUCCESS);}掃碼關(guān)注獲取更多l(xiāng)inux編程資源
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的C语言库自带的二分查找函数bsearch函数的使用示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大数据》2020年第4期目次摘要
- 下一篇: 学习网站大全