排序算法

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

 

posted @ 2018-07-14 09:58  blue_day  阅读(121)  评论(0编辑  收藏  举报