冒泡排序 O(n^2)
遍历两轮,每两个前后比较,大的放到后面。exchange:当一轮中一次都没有交换的时候提前结束遍历。
def bubble_sort(self, li): # 冒泡排序
for i in range(len(li)):
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
if not exchange:
return li
选择排序O(n^2)
遍历,选择最小的,放到列表第一个,以此类推。
def select_sort_simple(self, 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
插入排序 O(n^2)
遍历,从头把依次将小的值插入到大的值前面。
def insort_sort(self, li): # 插入排序
for i in range(1, len(li)):
tmp = li[i]
j = i - 1
while j >= 0 and li[j] > tmp