qsort与bsearch学习

排序算法有很多,搜索算法也很多。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;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值