题目描述
对于一个整数n,和一个数组a[n],将a[n]中的元素重新排列,使其元素为从小到大或者从大到小的顺序。
输入格式
一个正整数n和数组元素。
输出格式
重新排列后的数组元素,中间用空格隔开。
输入输出样例
输入 #1
7
7 4 2 5 1 3 6
输出 #1
1 2 3 4 5 6 7
这题是我比较前期做的,用的死办法
#include<iostream>
using namespace std;
int main()
{
int n,i,j,temp;
cin>>n;
int a[n];
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1]) //递减就用<
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
学到后期(指的是学习STL后)直接一个multiset函数就可以了
#include <iostream>
#include <set>
using namespace std;
void printSet(multiset<int>&s)
{
for(multiset<int>::iterator it=s.begin();it !=s.end();it++)
{
cout<< *it<<" ";
}
}
int main()
{
int n,i;
cin>>n;
int a[n+1];
multiset<int>s1;
for(i=0;i<n;i++)
{
cin>>a[i];
s1.insert(a[i]);
}
printSet(s1);
return 0;
}