排序算法
1 """ 2 插入排序 3 sort_list = [23, 33, 22, 12, 32, 25, 77, 4, 88, 2] 4 5 def insertion_sort(sort_list): 6 iter_len = len(sort_list) 7 if iter_len < 2: 8 return sort_list 9 for i in range(1, iter_len): 10 key = sort_list[i] 11 j = i - 1 12 while j>=0 and sort_list[j]>key: 13 sort_list[j+1] = sort_list[j] 14 j -= 1 15 sort_list[j+1] = key 16 return sort_list 17 18 print(insertion_sort(sort_list)) 19 """ 20 """ 21 冒泡排序 22 li = [23, 33, 22, 12, 32, 25, 77, 4, 88, 2] 23 # 前一个数和下一个数比较,大的上浮,直到顶部 24 # 剩下的数再次比较决出第二大的数 25 def bubble_sort(sort_list): 26 iter_len = len(sort_list) 27 if iter_len < 2: 28 return sort_list 29 for i in range(iter_len-1): 30 for j in range(iter_len-i-1): 31 if sort_list[j] > sort_list[j+1]: 32 sort_list[j], sort_list[j+1] = sort_list[j+1], sort_list[j] 33 return sort_list 34 35 print(bubble_sort(li)) 36 """ 37 li = [23, 33, 22, 12, 32, 25, 77, 4, 88, 2] 38 # 找出最小位置的数最后交换,沉底找,选择排序 39 def selection_sort(sort_list): 40 iter_len = len(sort_list) 41 if iter_len < 2: 42 return sort_list 43 for i in range(iter_len-1): 44 smallest = sort_list[i] 45 location = i 46 for j in range(i+1, iter_len): 47 if sort_list[j] < smallest: 48 smallest = sort_list[j] 49 location = j 50 if i != location: 51 sort_list[i], sort_list[location] = sort_list[location], sort_list[i] 52 return sort_list 53 54 print(selection_sort(li))