我正在编写一个简单的冒泡排序脚本。我已经尝试了几个测试用例,但其中一些没有按预期的顺序排列。下面是我的代码,其中有一个测试用例不起作用
def bubble_sort(array):
i = 0
j = 1
for x in range(0, len(array)):
for y in range(1000):
if(i == 4 and j == 5):
i, j = 0, 1
if(array[i] <= array[j]):
pass
if(array[i] > array[j]):
array[i], array[j] = array[j], array[i]
#print(array)
i, j = i + 1, j + 1
pass
pass
return(array)
我正在将此列表传递给代码
[7, 3, 1, 2, 3, 3, 10, 15, 2]
输出是
[1, 2, 3, 3, 7, 3, 10, 15, 2]
我找不到代码上的错误,尽管我认为是迭代次数和逻辑上的错误。 希望有人能帮助我
这只是您的代码的固定版本:
我不明白为什么您的循环在for循环中使用
x
和y
作为枚举值,但随后您使用另一对索引:i
和j
。似乎不需要i
和j
if(i == 4 and j == 5)
-不需要。这仅仅是一件调试的事情吗pass
只是个禁忌。我认为你不需要它它的拼写是
bubble
,而不是buble
它变得非常简单:
这是您的代码的不同版本
在这些代码之后,您需要初始化(创建)数组,然后像这样调用def
bubbleSort(arr)
完成所有这些之后,您可以在for循环中打印数组相关问题 更多 >
编程相关推荐