法1:sort一次,for循环正反序输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 请在此输入您的代码
int N;
cin>>N;
int a[1000000];
for(int i=0;i<N;i++)
cin>>a[i];
sort(a,a+N);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
cout<<'\n';
for(int i=N-1;i>=0;i--)
cout<<a[i]<<' ';
return 0;
}
法2:sort一次,reverse一次
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 请在此输入您的代码
int N;
cin>>N;
int a[1000000];
for(int i=0;i<N;i++)
cin>>a[i];
sort(a,a+N);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
cout<<'\n';
reverse(a,a+N);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
return 0;
}
法3:正sort一次,反sort一次
#include <bits/stdc++.h>
using namespace std;
bool cmp(const int &u,const int &v)
{
return u>v;
}
int main()
{
// 请在此输入您的代码
int N;
cin>>N;
int a[1000000];
for(int i=0;i<N;i++)
cin>>a[i];
sort(a,a+N);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
cout<<'\n';
sort(a,a+N,cmp);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
return 0;
}
法4:正序冒泡排序, 反序随意(我选reverse)(运行超时,想过就别复制这个)
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 请在此输入您的代码
int N;
cin>>N;
int a[1000000];
for(int i=0;i<N;i++)
cin>>a[i];
for(int i=0;i<N-1;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
/*
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
*/
}
}
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
cout<<'\n';
reverse(a,a+N);
for(int i=0;i<N;i++)
cout<<a[i]<<' ';
return 0;
}