BubbleSort python在两个方向交换

时间:2018-01-10 20:49:00

标签: python

使用python的Bubblesort算法的一个例子 该算法按两个方向对列表元素进行排序

def bubbleSort_UpDown(alist,ite):
    up=True
    d=0
    f=len(alist)-1
    while d<f :
        if up==True :
            for i in range(f):
                ite+=1
                if alist[i]>alist[i+1]:
                    alist[i+1],alist[i]=alist[i],alist[i+1]
                    f-=1
            up=False
        else:
            for i in range(f,d+1,-1):
                ite+=1
                if alist[i]<alist[i-1]:
                    alist[i-1],alist[i]=alist[i],alist[i-1]
                d+=1
            up=True
    print("debut",d)
    print("fin",f)

    return ite

L=[10,9,8,7,6,5,4,3,2,1,0]

print("UnSorted list:", L)
iterr=bubbleSort_UpDown(L,0)
print("Sorted list:", L)
print(iterr)

iterr打印交换号码

问题:如何改进此算法。并优化交换次数?

1 个答案:

答案 0 :(得分:1)

Bonjour,votre code est bon!现在回到英语,需要一些小修复:

f- = 1和d + = 1需要移动缩进。

范围需要更改为(d,f,1)和(f,d,-1)

最终守则:

.idea/artifacts