/*qsort与sort调用细则*/
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
//qsort
//普通数组
a[1000];
int comp(const void *a,const void *b)
{
return *(int *)a - *(int *)b;//(int *)表示把(const coid * a)强制准换成int型指针 外边的*是取内容
}
qsort(a,k,sizeof(int),comp);
//对结构体排序
struct edgetype{
int a;
int b;
int len;
}edge[5000];
int comp(const void *a,const void *b)
{
return (((struct edgetype *)a)->len)-(((struct edgetype *)b)->len);
}
qsort(edge,k,sizeof(struct edgetype),comp);
//对double
int comp(const void *a,const void *b)
{
if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)>0)
return 1;
else if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)==0)
return 0;
else if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)<0)
return -1;
}
//对特定长度进行排序
qsort(a+x,k,sizeof(int),comp);//从a【x】开始的k个数进行排序 例如:a[0]=3 a[1]=2 a[2]=1 a[3]=0 qsort(a+1,2,sizeof(int),comp) 之后 3 1 2 0
//sort调用细则
#include<algorithm>
//对普通数组
int a[1000];
bool cmp(int a,int b)
{
return a<b;//当满足当前顺序,返回1,不满足当前顺序,返回0
}
sort(a+x,a+y,cmp);//对a【x】-a【y-1】进行排序(y==x 与 y==x+1效果相同)
//对结构排序
struct edgetype{
int a;
int b;
int len;
}edge[5000];
bool cmp(struct edgetype a,struct edgetype b)
{
return a.len<b.len;//当满足当前顺序,返回1,不满足当前顺序,返回0
}
sort(edge+x,edge+y,cmp);
sort与qsort使用细则
最新推荐文章于 2024-03-19 22:23:06 发布