相信一部分同学听到数据结构和算法第一反应就是太难了!其实只要明白它的思想,理解了它的思路,一切都是毛毛雨~

那今天华妹就以同学们感兴趣的冒泡排序为例给大家详细说说。

首先,什么是冒泡排序呢?

它其实就是一种简单的排序算法,也是一种稳定排序算法,至于为什么叫这个名字?因为越小的元素会通过交换慢慢“浮”到数列的顶端(升序或降序排列)。

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(1)

就像我们在喝碳酸饮料时,把它倒入杯子里面二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。说到这大家就明白了,其实冒泡排序就是从大到小排序或者从小到大排序的一种方法。

它实现原理就是相邻的两个数两两比较,如果符合整体排序顺序就继续向后判断,否则就将两个数交换。当待排序序列中有相同的元素时,它们的相对位置在排序前后不会发生改变,所以称它为稳定排序算法。

下面我们以从小到大排序为例,来看一下它究竟是怎么实现的。

比如现在有5个数:9 8 7 1 3

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:加微信领取资料

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(2)

第一轮:

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(3)

第二轮:

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(4)

第三轮:

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(5)

第四轮:

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(6)

通过以上比较过程可以得出,如果比较n个数,只需要比较n-1轮即可;而且每轮比较的次数会随着比较轮数的增加而减小,而且轮数和每轮比较次数的和是固定的值,都是比较的个数n。

c代码实现:

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(7)

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(8)

那根据以上例子推出当有n个数进行排序时,可以套用以下代码:

只需要修改N标识的数值,输入对应个数的数就可以从小到大输出排序后的值。

数据结构冒泡排序完整代码(嵌入式数据结构与算法之)(9)

转载自:华清远见

文章来源于嵌入式数据结构与算法之“冒泡排序”讲解

原文链接:https://mp.weixin.qq.com/s/jt66Fe1EeZMCs91BzSQFIA

,