物联网
您现在所在的位置:首页>企业动态>物联网

十大排序算法——冒泡排序

编辑:学到牛牛IT培训    发布日期: 2023-08-02 08:49:59  


冒泡排序是相对于其他排序来说较简单的排序,也是入门级排序,在一个要排序的序列里面,从前往后进行多次扫描,每两个相邻的数据进行比对,小的放在前面,大的放在后面(升序),多次重复此操作,直到变成一个有序的序列,那它名字的冒泡是从何而来呢,其实就是每两个数据进行比对时,大的那个数因为交换就会像泡泡一样浮起来浮到顶端。


知道了冒泡排序的概念之后,我们再来仔细的看看它的每个步骤

首先,定义一个数组,先从前往后扫描一次,完成第一次的排序,我们最终要呈现一个升序的数组,所以排序的过程中就应该小的数放前面,大的数放后面。


如图1-1所示,定义两个变量(int i,int j),充当内外两层循环的变量,首先从下标为0的数开始(j = 0),遍历完最后一个数结束第一次排序(j < len -i-1),

遍历的过程中相邻的两个数进行比较(a[j] > a[j+1]),如果前一个数大于后一个数,则两个数交换位置(怎么交换?借助第三个数),如果前一个数小于后一个数,则位置不变,继续后面的相邻的数的比较,直到最后一个数进行比较后结束第一轮。

temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

1.png

图1-1

(若出稿请在素材中更换此图,删除本句话)

如图1-2所示,我们开始第二轮的排序(i = 1),继续相邻的数进行比较,重复第一轮排序的操作

2.png

图1-2

(若出稿请在素材中更换此图,删除本句话)


内层循环(j)继续相邻两个数的比较,当外层循环遍历到最后一个数(i < len),结束所有的排序,冒泡排序结束。


以上是冒泡排序的基本步骤,其实通过这些步骤可以看出来冒泡排序是思想比较简单的排序,既然简单肯定还是有很多考虑不周全的地方,所以冒泡排序也是所有排序中效率较低的排序,适合初学者使用。接下来我们看看冒泡排序怎么通过程序实现


#include <stdio.h>


int main()

{

int a[5] = {1,3,2,5,4};

int len = 5;

int i,j,temp;

for(i = 0; i < len; i++)   //外循环

{

for(j = 0; j < len-i-1; j++)   // 内循环

{

if(a[j] > a[j+1])   // 升序,保持前一个数小于后一个数的顺序

{

temp = a[j];     //交换位置

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

for(i = 0; i < len; i++)

{

for(j = 0; j < len; j++);

printf(“a = %d ”,a[j]);

}


}


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    扫一扫,免费咨询

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    微信公众号

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

学一流技术,找高薪工作

物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问