def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
'''
arr = [12, 11, 13, 5, 6]
insertionSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i])
排序后的数组:
5
6
11
12
13
'''
在这里,arr[0]和arr[1]好理解,arr[2]不满足while的条件就不变。
当arr[3]的时候,就会和arr[2]换位置,而程序中的arr数组变成[11,12,5,13,6],
下一次的while会在新的数组的arr[1]和arr[2]之间交换位置后,再次数组变成[]11,5,12,13,6],
也就是新的变形数组在满足while的条件,就会直至变成[5,11,12,13,6],
前面的[0:3]都不满足while条件后,才到arr[4]重复上面程序的操作。