描述
比普通排序快一些的排序。
输入
第一行包含一个整数T,表示有T组数据。对于每组数据:第一行包含一个数字N(<100,000),表示该组数据由N个元素;第二行包含N个数,就是这N个元素的值( <100,000 )。
输出
对于每组数据输出一行,包含排序好后的N个元素,要求从小到大排序,相邻2个元素间有个空格,末尾无空格有个回车。
解题思路:既然要求高效,那么就可以使用C++内部的排序算法,编写一个类,用vector加以实现。
#include <iostream> #include <vector> #include <algorithm> using namespace std; class compare { public: bool operator()(const int &x,const int &y) { return x<y; }; }; int main() { vector<int> v; compare cmp; int n; int temp; int i; int number,te; cin>>number; for(te=1;te<=number;te++) { cin>>n; for(int i=0;i<n;i++) { cin>>temp; v.push_back(temp); } sort(v.begin(),v.end(),cmp); for(i=0;i<n;i++) cout<<v[i]<<' '; cout<<endl; v.clear(); } return 0; }