猿问

不要去纠结程序是啥,变量是啥?麻烦帮忙看一下嘛?

例如

int cmp(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
qsort(a,n,sizeof(a[0]),cmp);

另外解释一下例子中的CMP
例子2:
int cmp(edge a,edge b)
{
return a.w<b.w;
}  
sort(e,e+m,cmp); //其中e是结构体数组,结构类型为edge

森林海
浏览 171回答 2
2回答

慕尼黑的夜晚无繁华

cmp 就是比较函数,用于确定两个对象的大小关系这是需要你自己定义的

海绵宝宝撒

声明成一个返回值是&nbsp;int&nbsp;,参数是两个&nbsp;void*&nbsp;类型的函数就可以了,这个函数会被算法实现的代码调用的 具体实现: &nbsp; int&nbsp;my_cmp(void*&nbsp;p1,void*&nbsp;p2) { &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;p1&nbsp;代表第一个对象的地址指针 &nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;p2&nbsp;代表第二个对象的地址指针 &nbsp;&nbsp;&nbsp;//&nbsp;p1&nbsp;和&nbsp;p2&nbsp;的具体类型就是你数组定义时的类型,可以是简单的类型,也可以是结构、C++对象等 &nbsp;&nbsp;&nbsp;//&nbsp;在这个函数中你要将这些&nbsp;p1&nbsp;p2&nbsp;转化成实际的数据类型,然后进行比较 &nbsp;&nbsp;&nbsp;//&nbsp;如果第一个对象等于第二个对象,则返回0 &nbsp;&nbsp;&nbsp;//&nbsp;如果第一个对象大于第二个对象,则返回正数 &nbsp;&nbsp;&nbsp;//&nbsp;如果第一个对象小于第二个对象,则返回负数 }
随时随地看视频慕课网APP
我要回答