我正在輔導基本搜索和排序的人。在插入排序中,當我有一個大於數值前一個值的值時,我會進行負面迭代。當然,這種方法可能會導致問題,因爲有一個檢查調用了不存在的array [-1]。需要一個令人困惑的方式的解釋和布爾運作
如下粗體下劃線所示,添加和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
根據下面的答案,通過'and'語句的大多數現代語言將停止其中一個布爾人不符合條件。不幸的是,這引發了第二個問題,即首先評估哪個布爾值。與表面上預期的從左到右的方式相反,它看起來像* python的*評估順序是不同的。因此,現在剩下的就是找到有關該訂單算法的文檔。 – user2271967 2013-04-12 16:51:57