
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,
对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# @Date: 2018-4-10 # @Project: 算法 # @Filename: insertion_sort.py # @Last modified time: 2018-4-10 # @Copyright: 网址:www.168seo.cn 微信公众号:zeropython def insertion_sort(new_list): """ 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列, 对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 """ n = len(new_list) for i in range(1,n): # 控制将拿到的元素放到前面有序序列中正确位置的过程 # print(i, new_list) for j in range(i,0,-1): print("外层",i,"内层",j,new_list) if new_list[j] < new_list[j-1]: # 如果比前面的元素小,则往前移动 new_list[j],new_list[j-1] = new_list[j-1],new_list[j] else: # 否则代表比前面的所有元素都小,不需要再移动 break if __name__ == '__main__': alist = [54, 26, 93, 77, 44, 31, 44, 55, 20] insertion_sort(alist) print(alist) |
