【问题标题】:How can I reduce the number of variables on the bubble sorting?如何减少冒泡排序中的变量数量?
【发布时间】:2021-08-17 12:01:54
【问题描述】:

我做了一个冒泡排序代码。它工作正常,但我想减少变量的数量。我想在代码中只使用i。如何删除j

def bubble(v):
    l = len(v)
    for i in range(l-1):
        for j in range(l-i-1):
            if v[j]>v[j+1]:
                v[j+1],v[j] = v[j],v[j+1]
        return v

【问题讨论】:

  • 如果您有两个嵌套循环,则需要两个单独的循环变量。您不能删除 j 并仅使用 i
  • 或者您是在问如何编写一个没有两个嵌套循环的排序算法?我想这不再是冒泡排序了。
  • “它工作正常”:您的代码不起作用。 return 出现在外循环的第一次迭代中。

标签: python arrays sorting bubble-sort


【解决方案1】:

一种可能的方法是使用长度为 2 的列表,一个用于存储 i,另一个用于存储 j,以这种方式:

def bubble(v):
    l = len(v)
    i = [0, 0]                                     # use like [i, j]
    while i[0] < (l-1):
        i[1] = 0
        while i[1] < (l-i[0]-1):
            if v[i[1]]>v[i[1]+1]:
                v[i[1]+1],v[i[1]] = v[i[1]],v[i[1]+1]
            i[1] += 1
        return v
        i[0] += 1

注意,在这里,我们必须使用while 循环而不是for 循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    相关资源
    最近更新 更多