所以我为泡泡排序定义了一个函数,但是当我尝试运行它时,我只得到一个空白的控制台窗口。我觉得它像语法错误一样非常愚蠢,但我不能把它固定下来。这是代码:
def bubble(arr):
swap = True
while (swap == True):
swap = False
for i in range(len(arr)-1):
temp = arr[i]
if arr[i]> arr[i+1]:
temp = arr[i+1]
arr[1] = arr[i+1]
swap = True
array = ["AB","AAB","AAA"]
print (bubble(array))
input()
答案 0 :(得分:1)
这是一个更有可能起作用的气泡功能。
def bubble(arr):
swap = True
while (swap == True):
swap = False
for i in range(len(arr)-1):
if arr[i]> arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
swap = True
return arr
原始气泡功能存在各种问题。
print(bubble(array))
将始终输出None
swap = True
语句不合适,并且在您的while循环的每一步执行,导致无限循环arr[1] = arr[i+1]
而不是arr[i] = arr[i+1]
,忘记了交换的第二部分。在python中,您可以交换两个值而无需temp
变量,这就是我所做的。