我正在学习算法。我今天实现了插入排序。我不知道为什么内部打印语句在这里不起作用。该算法可以正常工作。
def insertionSort(array):
if len(array) > 1:
for j in range(1, len(array) ):
print "outer j is: "+ str(j)
while j > 0 and array[j-1] > array[j]:
array[j-1], array[j] = array[j], array[j-1]
j = j - 1
print "inner j is: "+ str(j)
return array
else:
return array
这两个打印语句都适用于此代码段:
def forWhile():
for i in range(1,10):
print "outer loop i is:" + str(i)
while i > 0:
i = i - 1
print "inner loop i is " + stri(i)
我睡了8个小时然后又回来了,现在内循环工作了。
我不知道。
答案 0 :(得分:2)
您的代码适合我。
>>> insertionSort([3,4,5,6,1,2])
outer j is: 1
outer j is: 2
outer j is: 3
outer j is: 4
inner j is: 3
inner j is: 2
inner j is: 1
inner j is: 0
outer j is: 5
inner j is: 4
inner j is: 3
inner j is: 2
inner j is: 1
[1, 2, 3, 4, 5, 6]
也许您使用有序数组作为输入,因此无需输入内循环。
>>> insertionSort([1,2,3,4])
outer j is: 1
outer j is: 2
outer j is: 3
[1, 2, 3, 4]