Python|图述冒泡
引言
在“小鲤鱼历险记”中,小鲤鱼的绝活是吐泡泡,惹得好多人捧腹大笑,其实在数据算法的世界里,也有一个有趣的现象叫冒泡排序。
这个算法,顾名思义,就是保证每个数据像水中的水泡一样,一点一点的向前方挪去, 不同的数据的排序方式不同。
解决方案
冒泡排序就是交换排序的一种排序方法
百度百科上面冒泡排序的定义,是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(正确的顺序就是从小到大)错误就把他们交换过来。
是不是觉得晦涩难懂,在这里,我将带领大家进一步了解这个算法。
首先冒泡排序其实不是很难,相对于直接排序,冒泡排序的算法程度是比较简单的,因为直接排序一个一个比较大小,这样就会导致算法的时间复杂度就会很大。所以我推荐用冒泡排序。
首先我们拿到一个数组,我们对其进行排序,冒泡排序是从前面往后面排序,也就是依次比较两个挨在一起的元素的值,如果是逆序的话,就交换,什么是逆序呢,我们一般对正常顺序的理解就是从小到大,所以逆序就是前面的比后面的元素的值大,所以就进行交换,这就像水的泡泡,而小的数就像水里的泡泡一个一个浮上来,而相对大的数就慢慢沉下去了,所以冒泡排序还是比较有趣的。接下来举个例子,能够更好地理解,举一个数组[5,6,4,3,2],具体步骤如下:
首先指针放在5和6上面,5和6进行比较
在进行了交换或者没有交换,指针都要向后移一位。
依次向后交换得到第一趟排序的结果,如果不是正确结果,则再进行第二趟排序。
结语
以上就是冒泡排序的简单介绍,可能过程不是很详细,但是应该能够初步理解,有些数组用冒泡排序还是要进行很多趟的排序才能够得到结果,但是冒泡排序是一种常用的排序方法。还有要注意的地方就是在排序的时候,交换或没有交换,指针都要向后移动一位,然后两个指针所指的元素进行比较。
实习编辑:王晓姣
作者:辜启书
稿件来源:深度学习与文旅应用实验室(DLETA)