Algorithms - Insertion Sort - 插入排序
1 Insertion Sort - 插入排序 2 插入排序算法的 '时间复杂度' 是输入规模的二次函数, 深度抽象后表示为, n 的二次方. 3 4 import time, random 5 F = 0 6 alist = [] 7 while F < 13: 8 F += 1 9 alist.append(random.randrange(0,100)) 10 j =1 11 print("List-O",alist) 12 startT =time.time() 13 while j < alist.__len__(): 14 factor = alist[j] 15 j += 1 16 print("-",factor) 17 i = j -1 18 while i > 0: 19 i -= 1 20 if alist[i] > factor: 21 alist[i],alist[i+1] = alist[i+1],alist[i] 22 print("Steps", alist) 23 endT = time.time() 24 print("List-S", alist) 25 print("Time elapsed :", endT - startT) 26 27 Output, 28 List-O [67, 22, 94, 33, 81, 92, 65, 94, 56, 10, 55, 5, 64] 29 - 22 30 Steps [22, 67, 94, 33, 81, 92, 65, 94, 56, 10, 55, 5, 64] 31 - 94 32 Steps [22, 67, 94, 33, 81, 92, 65, 94, 56, 10, 55, 5, 64] 33 Steps [22, 67, 94, 33, 81, 92, 65, 94, 56, 10, 55, 5, 64] 34 - 33 35 Steps [22, 67, 33, 94, 81, 92, 65, 94, 56, 10, 55, 5, 64] 36 Steps [22, 33, 67, 94, 81, 92, 65, 94, 56, 10, 55, 5, 64] 37 Steps [22, 33, 67, 94, 81, 92, 65, 94, 56, 10, 55, 5, 64] 38 - 81 39 Steps [22, 33, 67, 81, 94, 92, 65, 94, 56, 10, 55, 5, 64] 40 Steps [22, 33, 67, 81, 94, 92, 65, 94, 56, 10, 55, 5, 64] 41 Steps [22, 33, 67, 81, 94, 92, 65, 94, 56, 10, 55, 5, 64] 42 Steps [22, 33, 67, 81, 94, 92, 65, 94, 56, 10, 55, 5, 64] 43 - 92 44 Steps [22, 33, 67, 81, 92, 94, 65, 94, 56, 10, 55, 5, 64] 45 Steps [22, 33, 67, 81, 92, 94, 65, 94, 56, 10, 55, 5, 64] 46 Steps [22, 33, 67, 81, 92, 94, 65, 94, 56, 10, 55, 5, 64] 47 Steps [22, 33, 67, 81, 92, 94, 65, 94, 56, 10, 55, 5, 64] 48 Steps [22, 33, 67, 81, 92, 94, 65, 94, 56, 10, 55, 5, 64] 49 - 65 50 Steps [22, 33, 67, 81, 92, 65, 94, 94, 56, 10, 55, 5, 64] 51 Steps [22, 33, 67, 81, 65, 92, 94, 94, 56, 10, 55, 5, 64] 52 Steps [22, 33, 67, 65, 81, 92, 94, 94, 56, 10, 55, 5, 64] 53 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 54 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 55 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 56 - 94 57 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 58 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 59 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 60 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 61 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 62 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 63 Steps [22, 33, 65, 67, 81, 92, 94, 94, 56, 10, 55, 5, 64] 64 - 56 65 Steps [22, 33, 65, 67, 81, 92, 94, 56, 94, 10, 55, 5, 64] 66 Steps [22, 33, 65, 67, 81, 92, 56, 94, 94, 10, 55, 5, 64] 67 Steps [22, 33, 65, 67, 81, 56, 92, 94, 94, 10, 55, 5, 64] 68 Steps [22, 33, 65, 67, 56, 81, 92, 94, 94, 10, 55, 5, 64] 69 Steps [22, 33, 65, 56, 67, 81, 92, 94, 94, 10, 55, 5, 64] 70 Steps [22, 33, 56, 65, 67, 81, 92, 94, 94, 10, 55, 5, 64] 71 Steps [22, 33, 56, 65, 67, 81, 92, 94, 94, 10, 55, 5, 64] 72 Steps [22, 33, 56, 65, 67, 81, 92, 94, 94, 10, 55, 5, 64] 73 - 10 74 Steps [22, 33, 56, 65, 67, 81, 92, 94, 10, 94, 55, 5, 64] 75 Steps [22, 33, 56, 65, 67, 81, 92, 10, 94, 94, 55, 5, 64] 76 Steps [22, 33, 56, 65, 67, 81, 10, 92, 94, 94, 55, 5, 64] 77 Steps [22, 33, 56, 65, 67, 10, 81, 92, 94, 94, 55, 5, 64] 78 Steps [22, 33, 56, 65, 10, 67, 81, 92, 94, 94, 55, 5, 64] 79 Steps [22, 33, 56, 10, 65, 67, 81, 92, 94, 94, 55, 5, 64] 80 Steps [22, 33, 10, 56, 65, 67, 81, 92, 94, 94, 55, 5, 64] 81 Steps [22, 10, 33, 56, 65, 67, 81, 92, 94, 94, 55, 5, 64] 82 Steps [10, 22, 33, 56, 65, 67, 81, 92, 94, 94, 55, 5, 64] 83 - 55 84 Steps [10, 22, 33, 56, 65, 67, 81, 92, 94, 55, 94, 5, 64] 85 Steps [10, 22, 33, 56, 65, 67, 81, 92, 55, 94, 94, 5, 64] 86 Steps [10, 22, 33, 56, 65, 67, 81, 55, 92, 94, 94, 5, 64] 87 Steps [10, 22, 33, 56, 65, 67, 55, 81, 92, 94, 94, 5, 64] 88 Steps [10, 22, 33, 56, 65, 55, 67, 81, 92, 94, 94, 5, 64] 89 Steps [10, 22, 33, 56, 55, 65, 67, 81, 92, 94, 94, 5, 64] 90 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 5, 64] 91 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 5, 64] 92 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 5, 64] 93 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 5, 64] 94 - 5 95 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 5, 94, 64] 96 Steps [10, 22, 33, 55, 56, 65, 67, 81, 92, 5, 94, 94, 64] 97 Steps [10, 22, 33, 55, 56, 65, 67, 81, 5, 92, 94, 94, 64] 98 Steps [10, 22, 33, 55, 56, 65, 67, 5, 81, 92, 94, 94, 64] 99 Steps [10, 22, 33, 55, 56, 65, 5, 67, 81, 92, 94, 94, 64] 100 Steps [10, 22, 33, 55, 56, 5, 65, 67, 81, 92, 94, 94, 64] 101 Steps [10, 22, 33, 55, 5, 56, 65, 67, 81, 92, 94, 94, 64] 102 Steps [10, 22, 33, 5, 55, 56, 65, 67, 81, 92, 94, 94, 64] 103 Steps [10, 22, 5, 33, 55, 56, 65, 67, 81, 92, 94, 94, 64] 104 Steps [10, 5, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 64] 105 Steps [5, 10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 94, 64] 106 - 64 107 Steps [5, 10, 22, 33, 55, 56, 65, 67, 81, 92, 94, 64, 94] 108 Steps [5, 10, 22, 33, 55, 56, 65, 67, 81, 92, 64, 94, 94] 109 Steps [5, 10, 22, 33, 55, 56, 65, 67, 81, 64, 92, 94, 94] 110 Steps [5, 10, 22, 33, 55, 56, 65, 67, 64, 81, 92, 94, 94] 111 Steps [5, 10, 22, 33, 55, 56, 65, 64, 67, 81, 92, 94, 94] 112 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 113 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 114 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 115 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 116 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 117 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 118 Steps [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 119 List-S [5, 10, 22, 33, 55, 56, 64, 65, 67, 81, 92, 94, 94] 120 Time elapsed : 0.015672683715820312 121