列表排序
排序:将一组“无序”的记录序列调整为“有序”的记录序列
列表排序:将无序列表变为有序列表。
- 输入:列表
- 输出 :有序列表
*有升序与降序之分
内置排序函数:sort()

1、冒泡排序(Bubble Sort)
时间复杂度为:O(n^2)
def bubble_sort(li):
for i in range(len(li)-1): # 第i趟
for j in range(len(li)-i-1):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
li = [3,7,9,2,1,8,5,6,4]
print(li)
bubble_sort(li)
print(li)
结果为:

def bubble_sort(li):
for i in range(len(li)-1): # 第i趟
for j in range(len(li)-i-1):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
print(li)
li = [3,7,9,2,1,8,5,6,4]
print(li)
bubble_sort(li)
这次可以看到冒泡排序是如何变化的,嘻嘻~~~~~

优化:可以节省时间
def bubble_sort(li):
for i in range(len(li)-1): # 第i趟
exchange = False # 加一个标志位,如果一趟过程中没有发生交换,就认为它已经排序完成
for j in range(len(li)-i-1):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
exchange = True
print(li)
if not exchange:
return
li = [2, 1, 3, 5, 6, 4, 7, 8, 9]
print(li)
bubble_sort(li)
结果:


本文详细介绍Python中冒泡排序算法的实现,包括基本原理、代码示例,并探讨了如何通过添加标志位优化排序效率。适用于初学者理解排序算法和提升编程技巧。

被折叠的 条评论
为什么被折叠?



