算法(冒泡,选择,插入)
#冒泡排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_sort(li): for i in range(len(li)-1):#i是趟数 for j in range(len(li)-i-1):#j是指针 if li[j] > li[j+1]: li[j],li[j+1] = li[j+1],li[j] return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li)) #选择排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_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 if min_loc != i: li[i],li[min_loc] = li[min_loc],li[i] return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li)) #插入排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_sort(li): for i in range(1,len(li)):#i 代表拿到牌的下标 tmp = li[i] j = i-1 #j是手里最后一张牌的下标 while True: if j < 0 or tmp >= li[j]: break li[j+1] = li[j] j-=1 li[j+1] = tmp return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li))
#冒泡排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_sort(li): for i in range(len(li)-1):#i是趟数 for j in range(len(li)-i-1):#j是指针 if li[j] > li[j+1]: li[j],li[j+1] = li[j+1],li[j] return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li)) #选择排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_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 if min_loc != i: li[i],li[min_loc] = li[min_loc],li[i] return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li)) #插入排序 时间复杂度是o(n²) 空间复杂度是o(1) import random as rd def a_sort(li): for i in range(1,len(li)):#i 代表拿到牌的下标 tmp = li[i] j = i-1 #j是手里最后一张牌的下标 while True: if j < 0 or tmp >= li[j]: break li[j+1] = li[j] j-=1 li[j+1] = tmp return li li = list(range(100)) rd.shuffle(li) print(li) print(a_sort(li))