冒泡排序:
1 #coding:utf-8 2 ‘‘‘ 3 比较相邻的元素,每一趟交换后,最后的元素是最大的。 4 第一次比较n-1次,第二次比较n-2次。。。第n-1次比较1次 5 进行n-1次冒泡次数 6 最优时间复杂度O(n),最坏时间复杂度O(n^2) 7 ‘‘‘ 8 9 def bubble_sort(b_list): 10 n = len(b_list) 11 for j in range(0, n-1): 12 count = 0 13 for i in range(0, n-1-j): 14 if b_list[i] > b_list[i+1]: 15 count += 1 16 t = b_list[i+1] 17 b_list[i+1] = b_list[i] 18 b_list[i] = t 19 if count == 0: 20 break
简单选择排序
1 #coding:utf-8 2 ‘‘‘ 3 找到最小的放到最前面,接着从剩余的继续找最小的,放到第二个。 4 一共找n-1次,最优O(n),最坏O(n^2) 5 ‘‘‘ 6 7 def select_sort(s_list): 8 n = len(s_list) 9 for j in range(0, n-1): 10 min_v = j 11 for i in range(j+1, n): 12 if s_list[i] < s_list[min_v]: 13 min_v = i 14 t = s_list[j] 15 s_list[j] = s_list[min_v] 16 s_list[min_v] = t
插入排序
1 #coding:utf-8 2 ‘‘‘ 3 从第二个开始 和前面的有序序列比较,比较大小插进去 4 最优O(n),最坏O(n^2) 5 ‘‘‘ 6 7 def insert_sort(i_list): 8 n = len(i_list) 9 for j in range(1, n): 10 i = j 11 while i > 0: 12 if i_list[i] < i_list[i-1]: 13 t = i_list[i] 14 i_list[i] = i_list[i-1] 15 i_list[i-1] = t 16 i = i - 1 17 else: 18 break
原文:https://www.cnblogs.com/dreamhai/p/10392793.html