Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何减少气泡排序上的变量数量?_Python_Arrays_Sorting_Bubble Sort - Fatal编程技术网

Python 如何减少气泡排序上的变量数量?

Python 如何减少气泡排序上的变量数量?,python,arrays,sorting,bubble-sort,Python,Arrays,Sorting,Bubble Sort,我做了一个冒泡排序代码。它工作得很好,但我想减少变量的数量。我只想在代码中使用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 一种可能的方法是使用长度为2的列表,一个用于存储i,

我做了一个冒泡排序代码。它工作得很好,但我想减少变量的数量。我只想在代码中使用
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

一种可能的方法是使用长度为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
def气泡(v):
l=len(v)
i=[0,0]#使用like[i,j]
而i[0]<(l-1):
i[1]=0
而i[1]<(l-i[0]-1):
如果v[i[1]]>v[i[1]+1]:
v[i[1]+1],v[i[1]=v[i[1]],v[i[1]+1]
i[1]+=1
返回v
i[0]+=1

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

如果有两个嵌套循环,则需要两个单独的循环变量。您不能删除
j
而只使用
i
。或者您正在询问如何编写一个没有两个嵌套循环的排序算法?我想那将不再是冒泡排序了。“它工作得很好”:你的代码不工作了<代码>返回
发生在外循环的第一次迭代中。