2014-04-30 122 views
0

我正在學習算法。我今天實施了插入排序。我不知道爲什麼內部打印語句不起作用。該算法雖然正常工作。內部打印語句不起作用

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小時,然後回來,現在內環作品。

我不知道。

回答

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] 
+0

我確認這一點。 –

+0

也適用於我 – Atav32

+0

OP在這裏。 我睡了8個小時,然後回來,現在它工作。 – user2415706