内部打印声明不起作用

时间:2014-04-30 10:57:31

标签: debugging python-2.7 printing

我正在学习算法。我今天实现了插入排序。我不知道为什么内部打印语句在这里不起作用。该算法可以正常工作。

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个小时然后又回来了,现在内循环工作了。

我不知道。

1 个答案:

答案 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]