python实现冒泡排序

261 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

冒泡排序

冒泡排序也称为气泡排序,也是一种交换排序方法。

冒泡排序重复访问需要排序的列表元素,依次比较两个相邻的元素,两元素间排序出现错误就相互交换位置,重复进行这一操作,直至列表元素没有相邻元素需要交换,即完成排序。

冒泡排序原理
  • 对每两个相邻元素进行比较,如果前者大于后者(升序),则交换其位置。
  • 从列表的开始到结尾,依次对每一对相邻元素进行比较,如此往复,值最大的元素就被交换到列表的结尾,这就完成了第一轮排序。
  • 重复上一步,继续从列表开始进行比较,每轮比较都会将一个元素排序成功,每轮需要比较的元素个数也会递减,一直到没有任何一对元素需要比较,则列表排序完成。
范例

以列表[2,13,3,24,4,35,5,46,6,57,10,]为例(升序)。

1.从列表开头比较两相邻元素,第一个元素值大于第二个则交换,2<13,不需要交换。

2.继续向列表末尾访问元素,第二组13>3,两者交换位置。

3.持续访问,直至第一轮“冒泡”结束,此时列表最大值57将被排在列表末尾。

4.重复下一轮排序,直至整个列表排序完成。

代码分析
  • 我们用外层for循环来表示一共需要比较的趟数,11个元素就需要走10趟,那么该层for循环的长度就是数组长度减去1。
  • 每一趟交换次数我们用内层for循环表示,11个数的话,第一趟就需要交换10次,第二趟交换9次,第三趟交换8次,以此类推,内层for循环长度就是数组长度减去次数。
实现

image.png