此文章仅为本人在备赛蓝桥杯学习时,对有关知识点的记录,供日后复习方便
注意:sort是左闭右开,begin( )和end( )分别是左闭右开。
sort()函数默认比较函数为"<",即是升序。如果要使其降序,需要自己编写比较函数进行实现。
这里的bool类型是为了当a>b时,返回true。
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+2;
int A[N];
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>A[i];
}
sort(A,A+n);
for(int i=0;i<n;i++)
{
cout<<A[i]<<" \n"[i==n-1];//如果i==n-1为false,输出' ',为true,输出'\n'
}
sort(A,A+n,cmp);
for(int i=0;i<n;i++)
{
cout<<A[i]<<" ";
}
return 0;
}
这种思路是完全为了熟悉运用sort函数。其实大题小做了,可以先用sort函数将其变成默认的从小到大,然后再对其逆序输出即可。
这里的cout<<A[i]<<" \n"[i==n-1];是个小技巧
如果i==n-1为false,输出' ',为true,输出'\n'
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+2;
int A[N];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>A[i];
}
sort(A,A+n);
for(int i=0;i<n;i++)
{
cout<<A[i]<<" \n"[i==n-1];//如果i==n-1为false,输出' ',为true,输出'\n'
}
for(int i=n-1;i>=0;i--)
{
cout<<A[i]<<" ";
}
return 0;
}