我正在指导某人进行基本搜索和排序。在插入排序中,当我的值在数值上大于它之前的值时,我会进行否定迭代。现在当然这种方法可能会导致问题,因为有一个检查调用不存在的数组 [-1]。
如下面的粗体下划线所示,添加 and x > 0 布尔值可以防止索引问题。
我的问题是这是怎么回事?是否仍会调用 array[-1] 以确保两个布尔值的有效性?
the_list = [10,2,4,3,5,7,8,9,6]
for x in range(1,len(the_list)):
value = the_list[x]
while value < the_list[x-1] **and x > 0**:
the_list[x] = the_list[x-1]
x=x-1
the_list[x] = value
print the_list