当前位置: 移动技术网 > IT编程>脚本编程>Python > python一些排序算法-冒泡,快排

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

2020年07月18日  | 移动技术网IT编程  | 我要评论

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]:
				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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网