import random
# 冒泡排序原理:对比两个数,大的放在后面(从小到大排)
# 原版
# 时间复杂度:O(n平方)
def bubble_sort(li):
for i in range(len(li) - 1):
for j in range(len(li) - i - 1):
if li[j] > li[j+1]:
li[j],li[j+1] = li[j+1],li[j]
# 优化版,原理:判断后面有没有进行冒泡交换
def bubble_sort_s(li):
for i in range(len(li) - 1):
is_change = 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]
is_change = True
if not is_change:
break
data = list(range(10000))
random.shuffle(data)
print(data)
bubble_sort_s(data)
print(data)