2.7 算法 --4 冒泡排序

算法子目录:https://blog.csdn.net/qq_41106844/article/details/105553931

 
20155953-f02a8b41bf8bb7d7.jpg
分析图

冒泡排序的思路

比对列表里面所有相邻的两个数,如果前面的数大于后面的数,就交换他们,比对的次数多了,大的数肯定会逐渐往后,小的数不断往前。
这就和上体育课时的列队,老师让自己调整大小个,肯定大个子的会自觉往后,小个子会被挤到前面来。

有序区与无序区

冒泡排序中有有序区与无序区的概念,有序区是在不断的比对中,不断放置大小规律确定的元素的地方。
无序区就是我们大小规律不确定的地方。

稳定排序与不稳定排序

 
20155953-e2e03ad989ffe505.png
例子

 

稳定排序就是排序中相同的项的位置相对不动。
不稳定排序就是排序中相同的项的位置按照某种规律进行了改动。

 

代码

from A.cat_time import cal_time
import random
@cal_time
def bubble_sort(li):
    for i in range(len(li)-1):
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
    return li

li = list(range(10000))
random.shuffle(li)
bubble_sort(li)

因为有个两个for循环 复杂度为O(n2)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒 暄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值