python冒泡排序,在列表排序时停止

时间:2017-03-18 15:54:19

标签: python bubble-sort

嗨,我正在研究python,我试图制作一个冒泡排序算法,当它意识到列表被排序为一个例外情况时停止可以有人告诉我这是否正确

def bubblesort(list):
    done=False
    n=len(list)
    if done==False:
        for i in range(0, n-1, 1):
            for j in range(n-1, 0, -1):
                if list[j]<list[j-1]:
                    list[j],list[j-1]=list[j-1],list[j]
                else:
                    done=True

1 个答案:

答案 0 :(得分:0)

我之前使用类似技术制作了这个,我认为你使用逻辑运算符可能会导致问题(注意我的程序使用&gt;或&lt;而不是==)。

def bubbleSort(alist):
    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

alist = [54,26,93,17,77,31,44,55,20]
bubbleSort(alist)
print(alist)