注意:关于本书和算法,存在一些问题,但是没有一个是这个版本,也没有这个问题。
Python实现:
unsorted_list = [5, 2, 3, 6, 1, 3]
#insertion sort ->
for j in range(1, len(unsorted_list)):
key = unsorted_list[j]
#insert unsorted_list[j] into the sorted sequence unsorted_list[1...j-1]
i = j - 1
while i > 0 and unsorted_list[i] > key:
unsorted_list[i + 1] = unsorted_list[i]
i = i - 1
unsorted_list[i + 1] = key
print(unsorted_list)
结果:
[5, 1, 2, 3, 3, 6]
为什么第一个元素没有被触及?我已经用VSCode调试了三次,一切都很好。