1.问题描述:对N个数字进行冒泡排序;
2.问题分析:N个数字可以用数组来进行储存数据,从头开始进行扫描,将目标与相邻的一个进行比较,如果小于则两个数字交换,一轮结束后最小的数字则到最后,第二轮开始时减小便利次数,因为最后一个数字在第一次时已经就是最小的了,遍历N-1次后,则数据会从大到小完成;最后遍历数组并输出;
3.算法设计:首先设置一个N用来表示有几个数,用数组储存N个数;进行嵌套式循环语句,第一层循环表示要进行多少次遍历,第二次循环表示每次遍历需要对比的元素个数;
4.源代码:
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
int a[500] = { 0 };
for (int i = 0; i < N; i++)
{
cin >> a[i];
}
for (int i = 0; i < N-1; i++)
{
for (int j = 1; j < N-i; j++)
{
if(a[j]>a[j-1])
{
int k = a[j];
a[j] = a[j - 1];
a[j - 1] = k;
}
}
}
for (int i = 0; i < N; i++)
{
cout << a[i];
}
return 0;
}