排序(对于 sort 函数的使用)
很多代码的题目解释都在洛谷上
sort的基本使用
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,a[100000+10];//话说一开始数组开小了来着,flag*_*
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%ld",&a[i]);
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
sort对于结构体的使用
//对结构体进行sort排序
//输入n(n<=10000)个人的学号与成绩,按成绩由大到小排序输出,相同按学号由小到大输出
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
using namespace std;
////////////////////////////
int n;
struct file
{
int xh,cj;
}x[10010];
////////////////////////////
bool comp(const file &A,const file &B)
{
if(A.cj==B.cj)
return A.xh<B.xh;
return A.cj>B.cj;
}
////////////////////////////
int main()
{
freopen("2.txt","r",stdin);
cin>>n;
for(int i=1;i<=n;i++)
cin>>x[i].xh>>x[i].cj;
sort(x+1,x+1+n,comp);
for(int i=1;i<=n;i++)
cout<<x[i].xh<<" "<<x[i].cj<<endl;
}
冒泡排序
#include<cstdio>
#include<iostream>
using namespace std;
int n,a[1000000];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n-1;i++)
for(int j=1;j<=n-1;j++)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
}
未完待续
本作品采用《CC 协议》,转载必须注明作者和本文链接