# 冒泡排序
# 列表每两个相邻的数,如果前面比后面大,则交换这两个数
# 时间复杂度:O(n2)
def bubble_sort(li):for i in range(len(li)-1):
exchange = False
for j in range(len(li)- i -1):if li[j]> li[j +1]:
li[j], li[j +1]= li[j +1], j[i]
exchange = True
if not exchange:return
选择排序
# 先从整个序列中选择最小的数据放到第一位,再从剩余的序列中选择最小的数据放在第二位,如此循环,直到最后一位。
# O(n2)
def select_sort_simple(li):
li_new =[]for i in range(len(li)):
min_val =min(li)
li_new.append(min_val)
li.remove(min_val)return li_new
def select_sort(li):for i in range(len(li)-1):
min_loc = i
for j in range(i+1,len(li)):if li[j]< li[min_loc]:
min_loc = j
li[j], li[min_loc]= li[min_loc], li[i]