怎么在结构体中排序??用sort

zhangfeifei89757 2012-03-11 03:22:44
struct qujian
{
int a,b;
};
qujian qj[100];
我要使用sort(qj,qj+n); 按b从小到大排序怎么实现??求代码。。
...全文
272 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wendaoone 2012-03-11
  • 打赏
  • 举报
回复
大家学习都是为了进步,相互交流是很应该的,没必要进行人身攻击的
wendaoone 2012-03-11
  • 打赏
  • 举报
回复 1
void sort(struct qujian *qj,int n)
{
int i=0,j=0,k=0;
struct qujian qja;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if((qj+j)->b>(qj+j+1)->b)
{
qja=*(qj+j);
*(qj+j)=*(qj+j+1);
*(qj+j+1)=qja;
}
}
}
}
wendaoone 2012-03-11
  • 打赏
  • 举报
回复
选择法
void sort(struct qujian *qj,int n)
{
int i=0,j=0,k=0;
struct qujian qja;
for(i=0;i<n;i++)
{
qja=*(qj+i);
k=i;
for(j=i;j<n;j++)
{
if(qja.b>(qj+j)->b)
{
qja=*(qj+j);
k=j;
}
}
if(k!=i)
{
qja=*(qj+i);
*(qj+i)=*(qj+k);
*(qj+k)=qja;
}
}
}
erick08 2012-03-11
  • 打赏
  • 举报
回复
qsort
yht8708 2012-03-11
  • 打赏
  • 举报
回复
你人身攻击了……
[Quote=引用 3 楼 neolyao 的回复:]
冒泡/选择不会吗?笨蛋!!!
[/Quote]
如此美丽的你 2012-03-11
  • 打赏
  • 举报
回复
冒泡/选择不会吗?笨蛋!!!
zhangfeifei89757 2012-03-11
  • 打赏
  • 举报
回复
struct qujian
{
int a,b;
bool operator<(const qujian&x) const {
return b<x.b;
}

};

int n,a,b;
qujian qj[1000];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
qj[i].a=a;qj[i].b=b;
}
sort(qj+1,qj+n+1); //b从小到大排序
然后 for循环输出。。怎么会有0 0??
PunWinger 2012-03-11
  • 打赏
  • 举报
回复
sort有重载函数允许一个自己定义的比较函数指针作为参数
具体自己查一下吧

70,037

社区成员

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

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