冒泡排序是一种非常简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。越大的元素会经由交换,慢慢“浮”到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样。
村村象表情包
冒泡排序在编写C语言程序时经常使用,是学习C语言须掌握的排序算法。冒泡排序又叫起泡排序,对n个元素使用冒泡排序,通常需要进行n-1轮比较和交换。
下面以四个水果排序为例,简单介绍冒泡排序算法
这里有四种水果,分别放在四个果盘上。请调整它们的顺序,使得这些水果按照从小到大排列
第一轮第1次:将一号水果盘的苹果与二号水果盘的西瓜比较。小的在前,大的在后,保留原顺序。
第一轮第2次:将二号水果盘的西瓜与三号水果盘的柚子比较,小的在后,大的在前。
交换:交换两个水果的位置
第一轮第3次:将二号水果盘的西瓜与三号水果盘的荔枝比较,小的在后,大的在前。
交换:交换两个水果的位置。第一轮排序完成。最大的西瓜排到了最后。
第二轮:
第二轮排序则不管最后的西瓜
只对前三个水果排序
第三轮 :
![86c7592d144470454f0aa3a66477bbad.png](https://i-blog.csdnimg.cn/blog_migrate/a7474f90ee6a4d889d4512be0309f638.jpeg)
四个水果,经过3轮,就可顺序排列。
思考:
你能用流程图描述排序算法吗?
n个元素冒泡排序是否必须进行n-1轮?