Qsort函数的应用与讲解

解释:

qsort排序函数,即讲一段数组,字符串等进行有序的排列

Qsort函数的应用与讲解_第1张图片

 分析:

void qsort (void* base,//要排序的数组的首元素(就是数组名)
            size_t num, //要排序的数组元素的个数
            size_t size,//每个元素的字节大小(int为4,char为1)
            int (*compar)(const void*,const void*));

比较函数的实现:(分析中用的int,我们就按int来写一个)

int compar(const void*e1,const void*e2)

{//第一个*是解引用,后面的(int*)是强制类型转换成int型的指针

return *(int*)e1-*(int*)e2;//因为解释中说如果e1大于e2返回大于0的值

                                       //等于返回0

                                      //小于返回小于0的值

}

实例:

将:WHERETHEREISAWILLTHEREISAWAY排序

#include 
#include 
#include 
int compar(const void*e1,const void*e2)
{
return *(char*)e1-*(char*e2);//(升序),e2-e1降序
}
int main()
{
char a[] = " WHERETHEREISAWILLTHEREISAWAY";
int len=strlen(a);
qsort(a,len,1,compar);
printf("%s",a);
return 0;
}
答案;AAAEEEEEEHHHIIILLRRRSSTTWWWY

 

你可能感兴趣的:(数据结构,排序算法,算法,c语言)