python排序之一插入排序
首先什么是插入排序,个人理解就是拿队列中的一个元素与其之前的元素一一做比较交根据大小换位置的过程好了我们先来看看代码
首先就是一个无序的列表先打印它好让排序后有对比效果,然后我后面注释工作流程,下面我来一一说明下其运行流程,开始先声明一个插入排序的函数名insert_sort,要传入的参数为lis,count来获取列表lis长度len(lis),然后我们要开始写循环对比for i in range(从1到列表长度count)然后把列表下标为一位置的数也就是28(lis下标默认是从0开始然后才是1,2,3,...)j用来取i的前面一个位子i-1等于0,这用递减的方式来比对,j=0进入循环,判断lis[0]也就是85 大于 28,也就是前面的数只要比后面的数字大就交换位置,这里就lis[0+1]也就是lis[1]28 被lis[0]85给赋值了(可以简单理解为a=1,b=0 if a>b a,b=b,a等同于a=0,b=1),j: 0-1=-1循环结束,当然如果还是不清楚改变如下代码
首先你要注释#号代码,然后在循环结束打印出每次循环玩的结果就可以看得很清楚,这里可以清楚看到每一次循环完成都会改变前面几个数字的顺序(尤其注意看11的位置改变),其实也就是每次拿K去一次和前面的值比较,只要比K大位置就交换。在直接的就是与前面的数对比,只要它比你大就换位置。打个比方你买车,看了很多种,一去了解发现好多东西要配,货比三家的去问发现这第二家折扣大,你想买的欲望增加,就会把第一家想买的排在后面,优先第二家,结果第三家一站式服务全部跟你配齐,折扣也不错,这时候你心里会比较三家最想去的一家向前排,不好的就仍后面有个顺序1,2,3。
感谢收看,下次再见。