算法----(5)插入排序
从第一个元素开始,该元素可以认为已经被排序
取出下一个元素,在已经排序的元素序列中从后向前扫描
如果该元素(已排序)大于新元素,将该元素移到下一位置
重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
将新元素插入到该位置后
重复步骤2~5
1 L = [89,67,56,45,34,23,1] 2 def direct_insert_sort(numbers): 3 for i in range(1,len(numbers)): 4 #temp变量指向尚未排好序元素(从第二个开始) 5 temp = numbers[i] 6 #j指向前一个元素的下标 7 j = i-1 8 #temp与前一个元素比较,若temp较小则前一元素后移,j自减,继续比较 9 while j>=0 and temp<numbers[j]: 10 numbers[j+1]=numbers[j] 11 j = j-1 12 #temp所指向元素的最终位置 13 numbers[j+1] = temp 14 if __name__=='__main__': 15 direct_insert_sort(L) 16 print(L)