算法---之插入排序
插入排序
解释来自百度百科
“插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。”
可以参考菜鸟的图示:
https://www.runoob.com/data-structures/insertion-sort.html
我理解就是纸牌玩法,在玩纸牌的时候,我们会选取一个数字,然后依次对牌进行一个排序,所以插入排序,更像是对纸牌排序
代码
def inser_sort(li): #第一个循环遍历,是表示摸牌的下标数 for i in range(1,len(li)): tmp=li[i] #把牌存下来, j=i-1 #指的是手里牌的下标,每摸一次牌,就应该是长度减掉1就是下标 #现在需要持续摸牌,什么时候结束,牌摸完了也就是j小于0,, while j>=0 and li[j]>tmp :#表示还在摸牌,li[j]大于tmp,说明是比现在手上的牌要大,进行移动 #摸牌时大的往左移动,,小的数就往右移动 li[j+1]=li[j] #改变下标 j-=1 #牌少了一张,所以要减坐标 li[j+1]=tmp #把牌的位置进行调换 print(li) lists=[9,7,4,1,3,2,6,5] inser_sort(lists)
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |