def insertionSort(lst):
k = 1
while k < len(lst):
x = lst.pop(k)
insertInOrder(lst, k, x)
k += 1
def insertInOrder(lst, k, x):
while k >= 1 and lst[k-1] > x:
k -= 1
lst.insert(k, x)
这是我到目前为止所做的代码,但我是python的新手,无法运行它。我错过了print
声明还是一套?
答案 0 :(得分:0)
while
中的第一次insertInOrder
测试中出现轻微错误。这是修复后的版本。我添加了print
来电,以便您了解排序的进展情况。
def insertionSort(lst):
k = 1
while k < len(lst):
x = lst.pop(k)
insertInOrder(lst, k, x)
k += 1
def insertInOrder(lst, k, x):
print(k, x, lst)
while k > 0 and lst[k-1] > x:
k -= 1
lst.insert(k, x)
a = [4, 5, 7, 2, 9]
print(a)
insertionSort(a)
print(a)
<强>输出强>
[4, 5, 7, 2, 9]
1 5 [4, 7, 2, 9]
2 7 [4, 5, 2, 9]
3 2 [4, 5, 7, 9]
4 9 [2, 4, 5, 7]
[2, 4, 5, 7, 9]