擅长:python、mysql、java
<p>问题出在这句话上</p>
<pre><code>while listToBeSorted[currentIndex] > itemToBeInserted and currentIndex > 0
</code></pre>
<p>哪个应该是</p>
<pre><code>while listToBeSorted[currentIndex] > itemToBeInserted and currentIndex > -1
</code></pre>
<p>如果<code>currentIndex</code>始终大于0,则列表的第一个元素永远不会被排序,因为列表中的任何项都不会插入到列表的开头</p>
<pre><code>listToBeSorted = [7,2,4,3,6,5,1]
for pointer in range(1, len(listToBeSorted )):
itemToBeInserted = listToBeSorted[pointer]
currentIndex = pointer - 1
while listToBeSorted[currentIndex] > itemToBeInserted and currentIndex > -1:
listToBeSorted[currentIndex + 1] = listToBeSorted[currentIndex]
currentIndex -= 1
listToBeSorted[currentIndex + 1] = itemToBeInserted
print(listToBeSorted)
</code></pre>