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