我可以在不创建新列表的情况下缩短气泡排序吗?

Chr*_*ver 0 python

我做了一个冒泡排序算法,但我想知道是否有任何方法可以在不创建新列表的情况下将其缩短。到目前为止,这是设法做到的:

for passnum in range(len(alist)-1,0,-1):
    for i in range(passnum):
        if alist[i] > alist[i+1]:
            temp = alist[i]
            alist[i] = alist[i+1]
            alist[i+1] = temp
print(alist)
Run Code Online (Sandbox Code Playgroud)

Com*_*non 8

您不需要临时变量,在Python中有一种直接的方法来交换两个变量的值。

for passnum in range(len(alist)-1,0,-1):
    for i in range(passnum):
        if alist[i] > alist[i+1]: 
            alist[i],alist[i+1] = alist[i+1],alist[i] 
print(alist)
Run Code Online (Sandbox Code Playgroud)