【C语言学习笔记】qsort函数总结

qsort函数是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分发写的,其时间复杂度为n*log(n)。

函数原型(默认是从小到大排序):

void qsort(void *base,size_t nelem,size_t width,int (*Comp)(const void *,const void *));

*base为要排序的数组

nelem为要排序数组中元素的个数

width为数组中每个元素的size(以字节为单位)

(*Comp) (const void *a, const void *b) 为判断大小函数的指针,此函数需要自定义,如果a>b,则返回1,如果a<b,则返回-1,如果a==b,则返回0


举个例子:

对int型数组排序

int num[100]; 

int cmp ( const void *a , const void *b ) 
{ 
    int *temp_a = (int *)a;//强制转换类型
    int *temp_b = (int *)b;
    return *temp_a - *temp_b;
} 

qsort(num,100,sizeof(num[0]),cmp); 




你可能感兴趣的:(【C语言学习笔记】qsort函数总结)