【问题标题】:Bubble Sort Not Returning List [duplicate]冒泡排序不返回列表[重复]
【发布时间】:2016-09-05 09:21:40
【问题描述】:

我已经编写了这个冒泡排序程序,当我运行它时,控制台会打印'return',但没有返回列表,我不知道为什么。

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

收到一条消息说我的问题重复了,另一个问题忘记返回了。

【问题讨论】:

  • 你需要返回bub_sort(ol)(从底部4行)

标签: python


【解决方案1】:

您没有从递归调用中返回。

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

附: 冒泡排序中不需要递归。

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2023-03-28
    • 2016-05-17
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多