插入算法:
先貼上代碼如下
#coding:utf-8 """ 插入算法 -- 原列表下每單個數對整個列表的比較並找到最合適位置,只需定義一個變量 """ a = [3, 2, 4, 1, 5] def inSort(list1): if len(list1) == 0: return # k = 1 # for i in (1, len(list1)): for i in range(1, len(list1)): b = list1[i] cc = i - 1 while cc >=0: if b < list1[cc]: list1[cc+1] = list1[cc] else: break cc -= 1 list1[cc + 1] = b print(list1) print(list1) inSort(a) # sorted(a)
冒泡算法代碼如下
#coding:utf-8 """ 冒泡算法-- 相鄰兩數比較, 需要定義三個變量 """ a = [3, 2, 4, 1, 5] def inSort(list1): len1 = len(list1) for i in range(len1-1): j = i + 1 # for j in range(0, i+1): # a = list1[i] # b = list1[j] # if list1[i] > list1[j]: # list1[i] = b # list1[j] = a # print(j) # print(list1[j]) while j > 0 : a = list1[j] b = list1[j-1] # print(a,b) if a < b: list1[j] = b list1[j-1] = a else: break j -= 1 # print(list1) print(list1) inSort(a) # sorted(a)
示例代碼如上,結論:插入算法更快切穩定
理由:
1、定義參數個數,冒泡3個,插入1個,當數據量大時,執行代碼時參數多的開銷越大耗時也越久。