问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
8 3 6 4 9
样例输出
3 4 6 8 9
刚开始是想直接用sort函数的,,,结果,,,超时,,, 冒牌,快速排序都试了下,,,还是感觉用STL好一点,,,反正STL也得练习,,,
#include<iostream>
#include<algorithm>
#include<list>
using namespace std;
list<int> a;
int main ()
{
int n, i, t;
cin >> n;
for(i=0; i<n; i++)
{
cin >> t;
a.push_back(t);
}
a.sort();
for(i=0; i<n; i++)
{
cout << a.front() << " ";
a.pop_front();
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
priority_queue<int,vector<int>, greater<int> >a;
int main ()
{
int n, i, t;
cin >> n;
for(i=0; i<n; i++)
{
cin >> t;
a.push(t);
}
for(i=0; i<n; i++)
{
cout << a.top() << " ";
a.pop();
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> a;
bool Cmp(const int& a, const int& b) {
return a > b;
}
int main ()
{
int n, i, t;
cin >> n;
for(i=0; i<n; i++)
{
cin >> t;
a.push_back(t);
}
sort(a.begin(), a.end(), Cmp);
for(i=0; i<n; i++)
{
cout << a.back() << " ";
a.pop_back();
}
return 0;
}