冒泡排序基本原理

1.冒泡排序

1.1 基本概念

  • 冒泡排序是一种很基本的排序算法,排序效率比较低
  • 操作步骤
    • 对比相邻的元素,比较大小
      • 左边的值大于右边的值,交换位置
      • 左边的值小于右边的值,不交换位置

1.2 冒泡排序执行步骤有

  • 比较:比较相邻的值
  • 交换:交换位置

1.3 对于5个元素的值步骤次数

次数第一轮回第二轮回第三轮回第四轮回
对比次数4321
交换次数 【按照最多交换次数计算】4321
  • 总步骤为:(4+3+2+1)*2=20

1.4 冒泡排序大O记法表示

N个元素最多步骤 N 2 N^2 N2
52025
1090100
20380400
4015601600
8063206400
  • 发现,随着N的增长,步数大致增长为 N 2 N^2 N2
  • 冒泡排序的大O记法O( N 2 N^2 N2)

2. 将[4,2,7,1,3]进行冒泡排序 【实战】

  • 会进行4次循环(轮回)

2.1 第一次轮回步骤

在这里插入图片描述

2.2 第二次轮回步骤

在这里插入图片描述

2.3 第三次轮回步骤

在这里插入图片描述

2.4 第四次轮回步骤

在这里插入图片描述

3.代码实现

alist = [4, 2, 7, 1,3]
def sort(alist):
    for i in range(len(alist) - 1): # 循环次数
        for j in range(len(alist) - 1 - i):  # 对比次数
            if alist[j] > alist[j + 1]:
                alist[j], alist[j + 1] = alist[j + 1], alist[j]
        print(f"第{i+1}次轮回结果为:",alist)
sort(alist)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荼靡~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值