用python写算法——冒泡排序笔记(三)

本文详细介绍Python中冒泡排序算法的实现,包括基本原理、代码示例,并探讨了如何通过添加标志位优化排序效率。适用于初学者理解排序算法和提升编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表排序

排序:将一组“无序”的记录序列调整为“有序”的记录序列
列表排序:将无序列表变为有序列表。

  • 输入:列表
  • 输出 :有序列表
    *有升序与降序之分
    内置排序函数:sort()
    在这里插入图片描述

1、冒泡排序(Bubble Sort)

时间复杂度为:O(n^2)

def bubble_sort(li):
    for i in range(len(li)-1):      # 第i趟
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]

li = [3,7,9,2,1,8,5,6,4]
print(li)
bubble_sort(li)
print(li)

结果为:
在这里插入图片描述

def bubble_sort(li):
    for i in range(len(li)-1):      # 第i趟
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
        print(li)

li = [3,7,9,2,1,8,5,6,4]
print(li)
bubble_sort(li)

这次可以看到冒泡排序是如何变化的,嘻嘻~~~~~
在这里插入图片描述
优化:可以节省时间

def bubble_sort(li):
    for i in range(len(li)-1):      # 第i趟
        exchange = False    # 加一个标志位,如果一趟过程中没有发生交换,就认为它已经排序完成
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
                exchange = True
        print(li)
        if not exchange:
            return

li = [2, 1, 3, 5, 6, 4, 7, 8, 9]
print(li)
bubble_sort(li)

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值