2016-05-10 3 views
0

Я написал эту программу сортировки пузырьков, и когда я ее запустил, консоль печатает «возврат», но список не возвращается, и я понятия не имею, почему.Bubble Sort Not Returning List

def bub_sort(ol): 
    print'function start' 
    s=0 
    for x in range(1,len(ol)): 
     print'in floop' 
     if ol[x]>ol[x-1]: 
      print'swap' 
      ol[x],ol[x-1]=ol[x-1],ol[x] 
      s=s+1 
    if s>0: 
     print'restart' 
     bub_sort(ol) 
    else: 
     print'return' 
     return ol 

получил сообщение о том, что мои вопросы дублируются, а другой вопрос забыл вернуться.

+2

Вам нужно вернуть 'bub_sort (ol)' (4 линии снизу) – Sayse

ответ

4

Вы не возвращались с рекурсивного вызова.

def bub_sort(ol): 
    print 'function start' 
    s = 0 
    for x in range(1, len(ol)): 
     print 'in floop' 
     if ol[x] > ol[x-1]: 
      print 'swap' 
      ol[x], ol[x-1] = ol[x-1], ol[x] 
      s += 1 # Python has the increment operator. 
    if s > 0: 
     print 'restart' 
     return bub_sort(ol) 
    else: 
     print 'return' 
     return ol 

P.S. Нет необходимости в рекурсии в сортировке пузырьков.