代码:
list_sort = [3, 2, 5, 8, 4, 7, 6, 9, 0, 3, 2, 5, 8, 4, 7, 6, 9, 0]
def insert_sort(list_sort):
"""Increasing insert sort"""
length = len(list_sort)
for i in range(1, length):
temp = list_sort[i]
for j in range(i-1, -1, -1):
if temp < list_sort[j]:
print(temp, 'change', list_sort[j])
list_sort[j+1] = list_sort[j]
else:
break
list_sort[j+1] = temp
print(list_sort)
return list_sort
结果:
('insert sort: ', [3, 0, 0, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9])
截图:
问题说明:结果输出表明第一次交换发生在第一个元素3和第二个元素2之间,但是结果并没有交换。除了这次交换,其余的交换结果表明交换逻辑没有什么问题。这是怎么回事呢?