python 冒泡排序 时间复杂度

1 算法描述

比较相邻的元素,如果前一个比后一个大,交换之。
第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
第二趟将第二大的数移动至倒数第二位

因此需要n-1趟;

2 代码实现

def bobble_sort(li):
    # 外层循环
    for i in range(len(li) - 1):
        # print(li)
        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, 2, 4, 7, 1, 2]
# 排序前
print(li)
# 执行排序
bobble_sort(li)
# 排序后
print(li)

在这里插入图片描述
动态
在这里插入图片描述

3 时间复杂度

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zl18603543572/article/details/122330105