示例图
给定一组数据A =[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
将第一个数据作为有序序列,后面的数据都默认是无序序列,内层循环操作:每次取无序序列中的第一个数据与有序序列中的最后一个数据,进行比较(按照升序排列),如果后面的数(即无序列表中取出来与有序列表进行比较的数)更小的话则此次比较要进行交换,每执行一次交换就是指跟有序序列中的数据进行比较,比较过一次自然要进行减一操作,循环多次之后下标就会趋于0,当下标为0的时候就无法进行比较了,所以要给一个‘下标’>0的描述,当下标为0时则跳出此次循环。此时从无序序列中取出的下标已经跟前面的所有下标比较过了,根据range(x)函数自动进入下一个内存下标与有序序列的所有下标的比较(即内层循环),循环多次之后就是插入排序!!
图一 图二 图三另外一种思路:将第一个与剩下的比找到更小的值然后交换,循环多次
网友评论