gpt4 book ai didi

list - 每次通过冒泡排序时,我如何打印出列表的状态?

转载 作者:行者123 更新时间:2023-12-05 01:29:18 27 4
gpt4 key购买 nike

我有一个关于如何在 python 2.7 中获得以下输出的问题。

>> bubble(['abe','Ada','bak','bAr'], False)
['Ada', 'bak', 'bAr', 'abe']
['bak', 'bAr', 'Ada', 'abe']
['bAr', 'bak', 'Ada', 'abe']
>> bubble(['Adm','abe','bAr','bak'], False)
['Ada','bAr','bak','abe']
['bArt','bak','Ada','abe']

函数的输入如下。字符串列表 (L) 和表示字母升序 (asc=True) 或字母降序 (asc=False) 的 bool 值。在这两种情况下,它都是按字典顺序排列的。我想在每次有通行证的时候打印出列表的状态。

def bubble(L, asc):
n = len(L)
if asc == False:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()<L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L
if asc == True:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()>L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L

此外,我能否将当前访问列表项的方式替换为 i-1i 而不是 i,i+1

最佳答案

在内循环结束后打印它。

def bubble(L, asc):
n = len(L)
if asc == False:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()<L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L
if asc == True:
for i in range(1,n):
for ii in range(n-i):
if L[ii].upper()>L[ii+1].upper():
tmp=L[ii]
L[ii]=L[ii+1]
L[ii+1]=tmp
print L

对于你答案的第二部分,你可以使用你的内循环

for ii in range(n-1,i,-1)。//这将以相反的顺序运行循环。

      for i in range(1,n):
for ii in range(n-1,0,-1):
if L[ii-1].upper()<L[ii].upper():
tmp=L[ii-1]
L[ii-1]=L[ii]
L[ii]=tmp

你是这个意思,对吧?

关于list - 每次通过冒泡排序时,我如何打印出列表的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976802/

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