第一次接触这个概念的小伙伴可能不大明白什么是“冒泡”,一般我们都会想象是那种比同一级别高一点的内容,其实事实上并不然, 整个思路,就是两两比较,互换位置,每一轮选出(小)的数放到列尾,这就构成了今天主题,冒泡排序,文字内容还是稍显生疏,我们来用实例演示给大家深刻印象。
关于冒泡排序
题目演示
假设有一个列表 list = [5,4,3,2,1]
要求:按从小到大的顺序排序
图文演示
再次比较
然后在依次类推,最终每一轮只选出 1 个数,当最后一轮只剩 2 个元素时,结束。
总共需要比较的轮数 = 列数 - 1
比较的次数 = 列元素的个数 - 1,由于每一轮会排除一个(小)数,比较的次数会依次减 1;
代码演示
#!/usr/local/bin/python3 #-*-coding:utf-8-*- defbubble_sort(list): size=len(list) foriinrange(size-1): forjinrange(size-1-i): iflist[j]>list[j+1]: list[j],list[j+1]=list[j+1],list[j] returnlist print(bubble_sort([5,4,3,2,1]))
输出结果
[1,2,3,4,5]
从以上代码中,我们可以看出来冒泡排序算法并不是很困难,并且它的每次环节都是十分紧凑,各自都非常富有逻辑性的,另外经常容易在试题中碰到,大家一定要好好掌握。