#include
#include
#include
#include
#include
using namespace std;
#define n 15
int a[n];
int cmp(const void *x,const void *y)
int char_cmp(const void *x,const void *y)
int main(){/*
char a[n][100];
srand(time(0));
for(int i=0;i
c語言中 bsearch 包含在標頭檔案中,此函式可以根據你給的條件實現二分查詢,如果找到元素則返回指向該元素的指標,否則返回null;對於有多個元素匹配成功的情況,bsearch()未定義返回哪乙個。使用 bsearch 函式也要自己定義比較子函式。
函式原型:
[cpp]view plain
copy
void
*bsearch(
const
void
*key,
const
void
*base,
size_t
num,
size_t
size,
int(*cmp)(
const
void
*, const
void
*));
解釋一下引數
key 指向要查詢的元素
base 指向進行查詢的陣列
num 陣列中元素的個數
size 陣列中每個元素的大小,一般用sizeof()表示
cmp 比較兩個元素的函式,定義比較規則。需要注意的是,查詢陣列必須是經過預先排序的,而排序的規則要和比較子函式cmp的規則相同。
因為使用bsearch函式要求陣列預先排好序,所以該函式通常和快速排序函式(qsort)一起使用,關於qsort函式,詳見《c語言標準庫函式 qsort 詳解》
qsort函式和bsearch函式詳解
qsort 包含在標頭檔案中,此函式 根據給的比較條件進行快速排序,排序之後的結果仍然放在原陣列中,需要自己寫乙個比較函式。函式原型 void qsort void base,size t num,size t size,int comparator const void const void ba...
qsort函式和bsearch函式的使用
1.qsort排序 qsort example include include int values int compare const void a,const void b int main output 10 20 25 40 90 100 2.bsearch查詢 bsearch exampl...
qsort和sort的區別
first qsort 基本快速排序的方法,每次把陣列分成兩分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本排序的效率較低。整合在 c語言庫函式裡面的的 qsort 函式,使用 三路劃分的方法解決這個問題。所謂三路劃分,是指把陣列劃分成小於劃分值,等於劃分值和大於劃分值的三個部分。函式對bu...