冒泡排序。

​1.冒泡排序的基本原理
对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。
2.冒泡排序的特点:
升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。

def bubble_sort(arr):
    """
    冒泡排序函数
    :param arr: 待排序的列表
    :return: 排序后的列表
    """
    n = len(arr)  # 获取列表长度

    for i in range(n - 1):  # 外层循环控制比较的轮数
        for j in range(n - 1 - i):  # 内层循环控制每轮比较的次数
            if arr[j] > arr[j + 1]:  # 如果前一个元素大于后一个元素
                arr[j], arr[j + 1] = arr[j + 1], arr[j]  # 交换两个元素的位置

    return arr

# 测试代码
my_list = [5, 4 ,3 , 2, 1]
sorted_list = bubble_sort(my_list)
print(sorted_list)


# bubble_sort 函数接受一个待排序的列表作为参数,并返回排序后的列表。
# n = len(arr) 获取列表的长度,用于控制循环次数。
# 外层循环 for i in range(n - 1): 控制比较的轮数,每一轮都会将最大的元素移动到末尾。
# 内层循环 for j in range(n - 1 - i): 控制每轮比较的次数,每一轮都会将当前未排序部分的最大元素移动到末尾。
# if arr[j] > arr[j + 1]: 判断前一个元素是否大于后一个元素,如果是,则交换它们的位置。
# arr[j], arr[j + 1] = arr[j + 1], arr[j] 使用Python的多重赋值语句交换两个元素的位置。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值