gpt4 book ai didi

python - BubbleSort python 两个方向交换

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:49 26 4
gpt4 key购买 nike

使用 Python 进行冒泡排序算法的示例该算法在两个方向上对列表的元素进行排序

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 打印交换数量

问题:我该如何改进这个算法。并优化swap的数量?

最佳答案

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

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

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

最终代码:

def bubbleSort_UpDown(alist,ite):
up=True
d=0
f=len(alist)-1
while d<f :
if up==True :
for i in range(d,f,1):
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):
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)

关于python - BubbleSort python 两个方向交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48195828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com