使用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打印交换号码
问题:如何改进此算法。并优化交换次数?
答案 0 :(得分:1)
Bonjour,votre code est bon!现在回到英语,需要一些小修复:
f- = 1和d + = 1需要移动缩进。
范围需要更改为(d,f,1)和(f,d,-1)
最终守则:
.idea/artifacts