欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python一些排序算法-冒泡,快排

程序员文章站 2022-10-19 21:21:55
1.冒泡排序冒泡排序从列表的开头处开始,逐个比较相邻两个数据,如果前面的值大于后面的值,交换两个数据的位置,一直比较到列表的末尾。这个过程就是将最大的项以冒泡的方式排到末尾。然后算法从列表开头到倒数第二项重复这一过程,依次类推。def bubble_sort(alist): for j in range(len(alist)-1,0,-1): for i in range(j): if alist[i] > alist[i+1]:al...

1.冒泡排序

冒泡排序从列表的开头处开始,逐个比较相邻两个数据,如果前面的值大于后面的值,交换两个数据的位置,一直比较到列表的末尾。这个过程就是将最大的项以冒泡的方式排到末尾。然后算法从列表开头到倒数第二项重复这一过程,依次类推。

python一些排序算法-冒泡,快排

def bubble_sort(alist):
    for j in range(len(alist)-1,0,-1):
        for i in range(j):
            if alist[i] > alist[i+1]:
				alist[i], alist[i+1] = alist[i+1], alist[i]


alist = [1, 4, 3, 8, 5]
bubble_sort(alist)
print(alist)

冒泡排序优化
可以加入判断,如果没有元素交换,说明数据在排序过程中已经有序,直接退出循环,减少不必要的循环。

def bubble_sort(alist):
    for j in range(len(alist)-1,0,-1):
        swapped = False
        for i in range(j):
            if alist[i] > alist[i+1]:
                swapped = True
                alist[i], alist[i+1] = alist[i+1], alist[i]
        if not swapped:
            break


alist = [1, 4, 3, 8, 5]
bubble_sort(alist)
print(alist)

本文地址:https://blog.csdn.net/weixin_44857400/article/details/107419969

相关标签: Python