20260320-入门班-sort

已结束 IOI 开始于: 2026-3-20 15:15 2.5 小时 主持人: 21

排序

sort函数

复杂度为nlogn排序

sort(a+1,a+1+n,greater<int>)
    
    
int num[10] = {6,5,9,1,2,8,7,3,4,0};
sort(num,num+10,greater<int>());
for(int i=0;i<10;i++){
	cout<<num[i]<<" ";
}//输出结果:9 8 7 6 5 4 3 2 1 0

结构体排序需要自定义函数

struct node{
    int id;
    string name;
    double num;
}a[1000];
bool cmp(node p,node q){
    return p.id<q.id;//按照id从小到大排序
    //记忆:左边在前面的条件
    
}
int main(){
   sort(a+1,a+1+n,cmp);
}

课堂笔记

#include<bits/stdc++.h>
using namespace std;
struct node{
    string name;
    int c,m,e;
}a[1000];
bool cmp(node p,node q){
	return p.c+p.m+p.e>q.c+q.m+q.e;
}
int main(){
	sort(a+1,a+1+n,cmp);
	//sort(数组名字+起始位置,数组名字+终止位置+1) 
	//默认从小到大排序 
	//sort(数组名字+起始位置,数组名字+终止位置+1,用于比较的函数);
	//greater<int>() 将int 从大到小排 
	//O(nlogn) 
	//使用自定义函数来比较 
	//bool cmp(类型 p,类型 q)
	//{
	//		return p在q前面的条件; 
	//} 
	cout<<a[1].name<<" "<<a[1].c。。。。。。 
} 
状态
已结束
规则
IOI
题目
4
开始于
2026-3-20 15:15
结束于
2026-3-20 17:45
持续时间
2.5 小时
主持人
参赛人数
21