快排qsort函数 return里面的东西怎么理解?看不懂,为何字符串 ,结构体,数组return都不一样,怎么看升序降序

Lemon_Chen 2013-03-23 10:03:55
快排qsort函数 return里面的东西怎么理解?看不懂,为何字符串 ,结构体,数组return都不一样,怎么看升序降序


是对一个二维数组的进行排序:

int a[1000][2]; 其中按照a[i][0]的大小进行一个整体的排序,其中a[i][1]必须和a[i][0]一起移动交换。

qsort(a,1000,sizeof(int)*2,comp);

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

对字符串进行一个排序:

char a[1000][20];

qsort(a,1000,sizeof(char)*20,comp);

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

对一个结构体进行排序:

typedef struct str
{
char str1[11];
char str2[11];
}str,*stri;
str strin[100001]={0};

int compare(const void *a,const void *b)
{
return strcmp( ((str*)a)->str2 , ((str*)b)->str2 );
}

qsort(strin,total,sizeof(str),compare);


深深地没理解
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-03-24
  • 打赏
  • 举报
回复
比较函数 a < b, return -1 a == b, return 0 a > b, return 0
qq120848369 2013-03-24
  • 打赏
  • 举报
回复
你排序的实际上是内存,只不过被解释为不同的类型。
AnYidan 2013-03-24
  • 打赏
  • 举报
回复
个人感觉lz 应先看看其他内容,比如callback 函数
startservice 2013-03-23
  • 打赏
  • 举报
回复
qsort里面哪有return?由参数函数指针指向的函数才有return。函数指针参数作用就是对不同类型的排序做两个元素的比较。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧