(王道408考研数据结构)第八章排序-第四节1:冒泡排序

Posted 我擦了DJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(王道408考研数据结构)第八章排序-第四节1:冒泡排序相关的知识,希望对你有一定的参考价值。

(1)基本思想

冒泡排序属于交换类排序,简单点来说**,每趟排序不断比较相邻元素的大小然后进行交换**,这样如果按升序排序,那么最大的元素一定就会交换到最后面,次大的元素会交换到倒数第二位,依次类推。

(2)代码

1:完整排序
可以发现,当完成一趟排序之后,无序序列的元素就少了一位,那么需要排序的元素的位数也就少了一位。
所以定义一个变量end,它表示每趟排序指向此时无序序列的最后一个元素,然后对其进行排序,一趟结束之后,无序元素少一位,end向前移动,直到end=0时,表示排序结束。


关于这个代码当中要注意那个flag的设置,因为如果某趟排序排完之后,使的整个序列已经有序了,那么就没有必要再次排序了,所以设立flag就是要确保还进入了排序,说明此时还不是完全有序。

(3)动态演示


以上是关于(王道408考研数据结构)第八章排序-第四节1:冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

(王道408考研数据结构)第八章排序-第三节1:简单选择排序

(王道408考研数据结构)第八章排序-第三节1:简单选择排序

(王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序

(王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序

(王道408考研数据结构)第六章图-第四节6:拓扑排序(AOV网代码排序规则)

(王道408考研数据结构)第五章树-第四节1:二叉树排序树(BST)及其操作