猫史档案馆


冒泡排序 bubble sort

用户:FIRE_BYTEFIRE_BYTE查看:0 回复:2 评论:0 创建时间:2023-06-10T15:36:05


冒泡排序来咯!

 

emotion_编程猫_加油emotion_编程猫_加油emotion_编程猫_加油emotion_编程猫_加油

 

众所但不一定周知,我们只需使用以下代码格式就可以为列表排序:

 

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)

 

那么废话讲完了就正式切入正题了!

 

冒泡排序到底是什么?

 

首先,我们看一个动图:

center_image

emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了

看不懂啊~~~~~~~~~~~~~~~~~~~~~~~

 

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)

所以要想一个更简单的方法,那你们自己想吧,想不出来也可以看我的其他帖子,应该有讲哦。

emotion_喵喵


回复

上一页1 页 / 共 1下一页
FIRE_BYTEFIRE_BYTE

emotion_doge

点赞0


评论


1111111111111111211111111111111112

其实就是每次遍历列表,大的元素放到后面,再用大的元素和另外元素比较,大的放后面,每次都把最大的放在最后,如此循环

点赞0


评论