冒泡排序python

冒泡排序(Bubble Sort):列表相邻的数,如果前面的比后面的大,则交换这两个数。

代码实现:

def bubble_sort(li):    # li为列表
    for i in range(len(li)-1) # 只需列表长度减1趟,最后一趟已排好序
        for j in range(len(li)-1-i):  # 每趟排序好一个数
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]

代码优化:若列表已经排好序,即冒泡排序中的一趟没有发生交换,可以直接结束循环

def bubble_sort(li):    # li为列表
    for i in range(len(li)-1) # 只需列表长度减1趟,最后一趟已排好序
        single = False
        for j in range(len(li)-1-i):  # 每趟排序好一个数
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
                single = True  # 发生了交换
        if not single:    # 无交换时退出循环
            return 

 

posted @ 2023-06-06 21:47  天才九少  阅读(31)  评论(0)    收藏  举报