python冒泡排序算法如何使用?

Python (133) 2023-05-16 10:36:09

第一次接触这个概念的小伙伴可能不大明白什么是“冒泡”,一般我们都会想象是那种比同一级别高一点的内容,其实事实上并不然, 整个思路,就是两两比较,互换位置,每一轮选出(小)的数放到列尾,这就构成了今天主题,冒泡排序,文字内容还是稍显生疏,我们来用实例演示给大家深刻印象。

关于冒泡排序

题目演示

假设有一个列表 list = [5,4,3,2,1]

要求:按从小到大的顺序排序

图文演示

再次比较

然后在依次类推,最终每一轮只选出 1 个数,当最后一轮只剩 2 个元素时,结束。

总共需要比较的轮数 = 列数 - 1

比较的次数 = 列元素的个数 - 1,由于每一轮会排除一个(小)数,比较的次数会依次减 1;

代码演示

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#!/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([54321]))
#!/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]))
#!/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]))

输出结果

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
[1,2,3,4,5]
[1,2,3,4,5]
[1,2,3,4,5]

从以上代码中,我们可以看出来冒泡排序算法并不是很困难,并且它的每次环节都是十分紧凑,各自都非常富有逻辑性的,另外经常容易在试题中碰到,大家一定要好好掌握。

THE END

发表回复