题目描述
将读入的 �N 个数从小到大排序后输出。
输入格式
第一行为一个正整数 �N。
第二行包含 �N 个空格隔开的正整数 ��ai,为你需要进行排序的数。
输出格式
将给定的 �N 个数从小到大输出,数之间空格隔开,行末换行且无空格。
输入输出样例
输入 #1复制
5 4 2 4 5 1
输出 #1复制
1 2 4 4 5
说明/提示
对于 20%20% 的数据,有 1≤�≤1031≤N≤103;
对于 100%100% 的数据,有 1≤�≤1051≤N≤105,1≤��≤1091≤ai≤109。
首先排序有很多方法 对此可以进行快速排序、选择排序和冒泡法(初学阶段易掌握)或者还可以用一下sort
{sort()函数的传参:第一个参数代表数组开始地址,第二个参数代表数组结束地址,可以传入第三个参数:排序规则(默认升序排)。}
代码:
法一:冒泡
#include <stdio.h>
#define maxn 100100
int a[maxn];
int main(){
int i,n,j,t;
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(a[i]>a[j])t=a[i],a[i]=a[j],a[j]=t;
for(i=1;i<=n;i++)printf("%d ",a[i]);
return 0;
}
法二:sort( cpp)
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
sort(arr, arr + n);
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
return 0;
}