用户:
FIRE_BYTE查看:0 回复:2 评论:0 创建时间:2023-06-10T15:36:05
冒泡排序来咯!




众所但不一定周知,我们只需使用以下代码格式就可以为列表排序:
arr = [1,6,3,8,2,5]
arr.sort()
print(arr)
排序默认为升序排列
注:升序是指从小到大
那有聪明的农夫小姐就会问了:
那怎么才能是列表从大到小排列呢?
那也是歪瑞一Z的(very easy)的
只需在sort方法中添加一个“reverse=True”就轻松解决问题!
代码如下:
arr = [1,6,3,8,2,5]
arr.sort(reverse=True)
print(arr)
那么废话讲完了就正式切入正题了!
冒泡排序到底是什么?
首先,我们看一个动图:


































看不懂啊~~~~~~~~~~~~~~~~~~~~~~~
so %&#@%&*$#*&@…………
首先我们来一个简易版的。
def bubbleSort(lst=[10,9,8,7,6,5,4,3,2,1]):
# 把传入列表的长度缓存到n中
n = len(lst)
# 迭代执行n-1次
for i in range((n - 1)):
# 遍历列表内的所有元素
for j in range(((n - 1) - i)):
# 判断前两数是否为正确顺序,如果是,那么就调换顺序
if (lst[j] > lst[(j - 1)]):
# 调换顺序
lst[j], lst[(j - 1)] = lst[(j - 1)], lst[j]
# 返回列表
return lst
# 创建一个未排序的列表
arr = [9, 3, 1, 6, 10, 12, 34]
# 打印出当前arr的值
print(arr)
# 调用冒泡排序算法,并重新保存到arr列表中
arr = bubbleSort(arr)
# 打印出当前arr的值
prinr(arr)
由于这里使用了双重for 循环,所以时间复杂度就变成了T = O(N^2)
所以要想一个更简单的方法,那你们自己想吧,想不出来也可以看我的其他帖子,应该有讲哦。
![]()