大家好,今天给大家带来c++的冒泡排序
冒泡排序
冒泡排序呢是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
给大家举个例子
数组 5 4 3 2 1;
第一次交换后:4 5 3 2 1
第二次交换后:4 3 5 2 1
第三次交换后:4 3 2 5 1
第四次交换后:4 3 2 1 5
第五次交换后:3 4 2 1 5
第六次交换后:3 2 4 1 5
第七次交换后:3 2 1 4 5
第八次交换后:2 3 1 4 5
第九次交换后:2 1 3 4 5
第十次交换后:1 2 3 4 5
大家应该能发现规律
第四次交换时最大数5已经到了最后往后就没必要循环比较到5了
以下程序就很好写了
代码奉出
#include <iostream>//cin,cout用它就得加他
using namespace std;
int main()//主程序
{
int s,t=0;
cin>>s;
int sum[s],a;//定义一个数组,和一个用来交换的变量
for(int i=0;i<s;i++)//循环输入
{
cin>>sum[i];
}
for(int j=0;j<s;j++)
{
for(int i=1;i<=s-t;i++)//双重循环每层内循环递减
{
if(sum[i-1]>sum[i])//如果sum数组第i的前一位大于i那么就是类似于2,1的情况
{
a=sum[i-1];
sum[i-1]=sum[i];//调换位置
sum[i]=a;
}
}
t++;
}
for(int i=0;i<s;i++)
{
cout<<sum[i]<<" ";//循环输出
}
return 0;//养成好习惯
}
运行结果
感谢大家的观看
求三联