问一个关于qsort的问题~虽然分不多,但请进来看看

SWJTUli 2010-01-01 01:25:07
请问下,qsort只能对一个数组中的所有值都排序吗?

比如说,我想从a[2]到a[18]之间排序,我就把头地址写成a+2

我就发现qsort好像没有执行

qsort是不是不能对局部进行排序呢?

如果我要对局部进行排序,最好用什么函数呢?

谢谢各位大牛了.
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SWJTUli 2010-01-01
  • 打赏
  • 举报
回复
明白了,明白了,要写成
temp>0
SWJTUli 2010-01-01
  • 打赏
  • 举报
回复

int cmp_w(const void *p,const void *q)
{
int temp=((ccc *)p)->w-((ccc *)q)->w;
if(temp) return 1;
else if(temp<0) return -1;
else
{
if(((ccc *)p)->s-((ccc *)q)->s) return 1;
else return 0;
}
}


我的比较函数是这个,,主要看w的大小,如果w大小相等,再看s
SWJTUli 2010-01-01
  • 打赏
  • 举报
回复
好的,我再检查检查吧
yangch_nhcmo 2010-01-01
  • 打赏
  • 举报
回复
qsort
功 能: 使用快速排序例程进行排序
  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));
  各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序
beginnow 2010-01-01
  • 打赏
  • 举报
回复
可以啊,通过a[2]指定起始位置,通过18-2指定待排序的个数,你的比较函数是否存在问题?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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