您的位置:首页 > 其它

qsort与bsearch学习

2016-06-20 20:51 253 查看
排序算法有很多,搜索算法也很多。c语言提供了qsort和bsearch这两个库函数,今天学习了一下,感觉很实用。

下面是测试代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int cmp(const void*,const void*);
int main()
{
int s[]={3,4,5,6,2,1};
/*参数 1.待排序数组首地址
2.数组中待排序元素个数
3.待排序元素大小
4.比较函数*/
qsort(s,sizeof(s)/sizeof(s[0]),sizeof(s[0]),cmp);
int i;
for(i=0;i<6;i++)
printf("%d ",s[i]);
printf("\n");

srand(time(0));
int key = rand()%10+1;
/*参数 1.要查找的元素地址
2.待查找的数组首地址
3.待查找元素个数
4.待查找的元素大小
5.比较函数*/
//注意 bsearch使用前,要对s进行以cmp为比较函数的qsort
if(bsearch(&key,s,sizeof(s)/sizeof(s[0]),sizeof(s[0]),cmp)!=NULL)
printf("YES\n");
else
printf("NO\n");
return 0;
}

/*返回值<0 a排在b前面
返回值>0 a排在b后面*/
int cmp(const void* a,const void*b)
{
return *(int*)a - *(int*)b;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: