Python 中的插入排序错误
Insertion-sort error in Python
我正在尝试制作一个按升序对列表进行排序的插入排序程序。我收到错误:
line 16, in <module> if listNums[x] < listNums[i]:
对于这个程序:
listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38]
x = 1
i = 0
Copy = 0
for z in range (0, len(listNums)):
if listNums[x] < listNums[i]:
Copy = listNums[i]
listNums[i] = listNums[x]
listNums[x] = Copy
i = i + 1
x = x + 1
print(listNums)
可能是边界错误,因为 x
最终递增到 len(listNums)
,超出零索引数组的边界 1。
尝试仅遍历 range(0, len(listNums)-1)
。
我只想指出有更好的方法,即
listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38]
listNums.sort()
print listNums
这给出
[21, 32, 34, 38, 43, 54, 65, 65, 76, 98]
=> None
(编译于 repl.it)
希望对您有所帮助!
这不是 insertion sort error
在最后一次迭代中,即第 len(listNums) 次迭代中,x 的值超出了列表的长度,这就是它给出 IndexError: list index out of range
的原因
我正在尝试制作一个按升序对列表进行排序的插入排序程序。我收到错误:
line 16, in <module> if listNums[x] < listNums[i]:
对于这个程序:
listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38]
x = 1
i = 0
Copy = 0
for z in range (0, len(listNums)):
if listNums[x] < listNums[i]:
Copy = listNums[i]
listNums[i] = listNums[x]
listNums[x] = Copy
i = i + 1
x = x + 1
print(listNums)
可能是边界错误,因为 x
最终递增到 len(listNums)
,超出零索引数组的边界 1。
尝试仅遍历 range(0, len(listNums)-1)
。
我只想指出有更好的方法,即
listNums = [54, 21, 76, 43, 65, 98, 65, 32, 34, 38]
listNums.sort()
print listNums
这给出
[21, 32, 34, 38, 43, 54, 65, 65, 76, 98]
=> None
(编译于 repl.it)
希望对您有所帮助!
这不是 insertion sort error
在最后一次迭代中,即第 len(listNums) 次迭代中,x 的值超出了列表的长度,这就是它给出 IndexError: list index out of range