c语言自带的排序与查找

qsort与bsearch

qsort(元素起始地址,元素总数,单个元素的大小,比较函数)
bsearch(key元素地址,元素起始地址,元素总数,单个元素的大小,比较函数)

比较函数:
原型为int comp(const void *a,const void *b)
规定a < b时返回负, a = b时返回0, a > b时返回正

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

int comp(const void *a,const void *b){
    return (*(int *)a - *(int *)b);
}

int main(int argc,char *argv[]){
    int arr[]={10,20,3,2,40,24};
    int i;
    for(i=0;i<6;i++)
        printf("%d ",arr[i]);
    puts("");

    qsort(arr,6,sizeof(int),comp);
    for(i=0;i<6;i++)
        printf("%d ",arr[i]);
    puts("");

    int key=10;
    void *p=bsearch(&key,arr,6,sizeof(int),comp);
    if(p != NULL)
        printf("got %d\n",*(int *)p);
    return 0;
}
posted @ 2017-02-16 00:26  cfans1993  阅读(381)  评论(0编辑  收藏  举报