冒泡排序算法代码中有哪些错误



#我刚刚开始编码,并尝试了冒泡排序算法进行练习,但第一个和最后一个值确实被交换了。#

def bubble_sort(arr): 
n = len(arr)
for i in range(n - 1):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
else:
return None
lst = []
r = int(input("Enter number of elements you want in array:"))
for k in range(1, r + 1):
x = int(input("Enter value:"))
lst.append(x)
print("The given array :", lst)
print("The sorted array :", bubble_sort(lst))

输出:

Enter number of elements you want in array:6
Enter value:55
Enter value:12
Enter value:43
Enter value:87
Enter value:76
Enter value:33
[55,12,43,76,87,33]

#最后两条语句也不执行,有人能找到代码中的错误并解释#吗

循环完成后返回None。

在python中,您可以使用for循环编写else。您可以从https://www.geeksforgeeks.org/using-else-conditional-statement-with-for-loop-in-python/

因此,这不是语法错误,但根据您的逻辑,在for循环完成后,它只是返回None

以下代码给出答案

def bubble_sort(arr): 
n = len(arr)
for i in range(n - 1):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
lst = []
r = int(input("Enter number of elements you want in array:"))
for k in range(1, r + 1):
x = int(input("Enter value:"))
lst.append(x)
print("The given array :", lst)
print("The sorted array :", bubble_sort(last))

最新更新