今天我想分享一个C++编写的冒泡排序算法,其实和C语言的没多大区别,就是有了C++专属的输入输出流方式,希望对初学者有帮助!
//冒泡排序算法
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int a[5];
cout <<"please input the arry[]:"<< endl;
for (int i = 0; i < 5; i++)
{
cin >> a[i];
}
int temp; //定义一个中间变量来交换两个数
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5-i-1; j++)
{
if (a[j + 1]<a[j])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
cout << "the result is:"<< endl;
for (int i = 0; i < 5; i++)
{
if (i != 4) //这个if和else是为了达到数字在一行的效果,并且中间有空格,当然这是我自己的想法,如果你有其他方法也欢迎评论!
{
cout << a[i]<<" ";
}
else
{
cout<< a[i] << endl;
}
}
system("pause"); //这个少不了大家出学C++都知道,为了让他能一直显示,而不是闪现
return 0;
}
显示结果如上图,我采用的是升序排序
冒泡排序就是相邻的两个数进行比较对于本程序而言,只要后面比前面小,则两数进行交换直至比到最后一个数,就会把最大的数沉底,而小的数则会像泡泡一样冒上来,一共会比多少轮呢?外层循环控制总的轮数,有多少数就会比多少轮。内层循环控制的是本轮的比较,其实这算是最简单的一个算法了,细细思考你就能分析清楚它的过程。
这是博主第一次写,当然也有不少不足的地方,比如排版还不是特别熟练,但希望能对大家有帮助,不足的地方也欢迎在下方评论指正!每次写博客都是一个提升进步的机会,我也会在后续写更多的文章,立下这个flag!