python算法练习(1):冒泡排序

冒泡排序
时间复杂度是:O(n²)
外循环是:n,内循环是:½n

#!/usr/bin/env python 
# encoding: utf-8 
"""
@author: 九九的金金子
@file: bubble_sort.py
@time: 2021/6/9 16:08
"""

def bubble_sort(li):
    n = len(li)

    for i in range(n):
        # 外循环,i的值[0,len(li)],列表有多少个数就要循环多少遍

        for j in range(0, n - 1 - i):
            # 内循环,列表的数两两比较。
            # 一个外循环,会确定一个最大的数排在最后面。
            # 确定最大的数,不再参与比较。
            if li[j] > li[j + 1]:
                li[j], li[j + 1] = li[j + 1], li[j]

    return li

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

运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

DEBUG模式下得代码:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/daxiangaifashi/article/details/117750604
今日推荐