插入排序算法有种递归的思想在里面,它由N-1趟排序组成。初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。
然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;
第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;
.....
.....
第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。
它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。
时间复杂度为O(n**2)
def insertSort(test): length = len(test) for i in range(1,length): m = test[i] for j in range(0,i): if test[j]>m: test[i],test[j] = test[j],test[i] else: continue return test test = [10,9,7,8,3,6,11] insertSort(test) >>>[3, 6, 7, 8, 9, 10, 11]