python 排序算法
阿新 • • 發佈:2019-02-18
select 找到 code for nbsp 復雜度 有序 python min
冒泡排序:
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 ifb_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
python 排序算法