结构体排序 or pair排序 ?
pair排序
//声明
pair<int,int>p[10005];
//创建pair变量
p[i]={x,y};
//引用pair中的元素
p[i].first
p[i].second
//排序
sort(p+1,p+n+1);
//会自动按pair中的first升序排序,当first值相同时按second升序排序
//等价于
bool cmp(pair<int,int>a,pair<int,int>b){
if(a.first==b.first) return a.second<b.second;
return a.first<b.first;
}
结构体排序
//声明结构体类型及定义变量
struct node{
int x;
int y;
}a[10005];
//引用结构体内的元素
a[i].x
a[i].y
//元素排序
//1 cmp函数
bool cmp(node &a,node &b){
if(a.x==b.x) return a.y<b.y; //如果不这样写,有可能第二维数据不是有序的,因此和用pair排序的结果不一样
return a.x<b.x;
}
sort(a+1,a+n+1,cmp);
//2 重载小于号
struct node{
int x;
int y;
bool operator < (const node &b) const{
if(x==b.x) return y<b.y; //如果不这样写,有可能第二维数据不是有序的,因此和用pair排序的结果不一样
return x<b.x;
}
}a[10005];
sort(a+1,a+n+1);
时间复杂度
都是O(nlogn)
分类:
杂
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」