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))