A22617. 冒泡排序
填空题
中等
知识点
题目描述
冒泡排序
题目描述
编程输入n (1≤n≤20) 个小于1000非负整数,然后自动按从大到小的顺序输出。(冒泡排序)
输入
第一行,数的个数n;
第二行,n个非负整数。
输出
由大到小的n个非负整数,每个数占一行。
输入样例
5
2 5 8 6 12输出样例
12
8
6
5
2参考答案
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, a[25];
cin >> n;
for(int i = 1; i <= n; ++i)
cin >> a[i];
for(int i = 1; i <= n-1; ++i)
for(int j = 1; j <= n-i; ++j)
{
if(a[j] < a[j+1])
swap(a[j], a[j+1]);
}
for(int i = 1; i <= n; ++i)
cout << a[i] << endl;
return 0;
}答案解析
//解法2
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, a[25];
cin >> n;
for(int i = 1; i <= n; ++i)
cin >> a[i];
for(int i = n; i >= 2; --i)//这次循环要确定的数的最终位置
for(int j = 1; j <= i - 1; ++j)//要交换的数对的第一个数
{
if(a[j] < a[j+1])
swap(a[j], a[j+1]);
}
for(int i = 1; i <= n; ++i)
cout << a[i] << endl;
return 0;
}
上一题
下一题