方法一:
#include<iostream> using namespace std; int main() { int n; cin>>n; int a[200]; for(int i = 0; i < n; i++) { cin>>a[i]; } //冒泡排序 int temp, flag = 1; //flag是冒泡过程是否存在交换的标志 int j = n - 1; /*n是元素的个数,j是冒泡排序比较的次数 第一次冒泡比较的次数n-1,以后每次递减1 */ while(flag) { flag = 0;//每次冒泡前,标志位清0 for(int i = 1; i <= j; i++) { if(a[i-1]>a[i]) { temp = a[i-1]; a[i-1] = a[i]; a[i] = temp; flag = 1; } } j--; } for(int i = 0; i < n; i++) cout<<a[i]<<" "; return 0; }
方法二:
利用sort函数,用于c++中给指定区间所有元素进行排序,默认为升序,也可以进行降序。
用法:sort(a, a+n, cmp);
a:数组的首地址。
a+n:数组的尾地址。
cmp:自定义函数调用(降序)
bool cmp(int a, int b) { return a > b; }
代码如下:
#include<iostream> #include<algorithm> using namespace std; int main() { int n; cin>>n; int a[200]; for(int i = 0; i < n; i++) { cin>>a[i]; } sort(a,a+n); for(int i = 0; i < n; i++) cout<<a[i]<<" "; return 0; }