题目:
解题过程(C++)
//最常见的一种排序——冒泡排序
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int *a = new int [n]; //一维动态数组
for(int i=0; i<n; i++)
{
cin>>a[i];
}
//冒泡排序
for(int i=0; i<n; i++)
{
for(int j=0; j<i-1; j++)
{
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-1; i++)
{
cout<<a[i]<<" ";
}
cout<<a[n-1];
delete []a;
return 0;
}
但是,在蓝桥杯考试中,我们不必纠结用什么排序,我们可以直接调用排序函数sort()
sort()函数使用方法:
sort(a,a+n,great<int>) 从大到小排序
sort(a,a+n) 从小到大排序
也可以自定义函数比较
sort(a,a+n,cmp)
当然,需要注意引入头文件
#include<iostream>
否则报错
最后,这里推荐一个万能头文件
#include<bits/stdc++.h>
因此最终代码如下
//蓝桥杯排序
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int *a = new int [n]; //一维动态数组
for(int i=0; i<n; i++)
{
cin>>a[i];
}
sort(a,a+n); //默认从小到大排序
for(int i=0; i<n-1; i++)
{
cout<<a[i]<<" ";
}
cout<<a[n-1];
delete []a;
return 0;
}