同时解决编气泡排序的任务,我遇到了一个问题。因此,我需要计算数组中的交换次数和通过数组的次数。实际上,有输出。在我的代码数组中,排序正确,但计数器工作错误。
step = int(input())
a = list(map(int, input().split()))
passage_number = 0
swap_number = 0
for x in range(step):
for i in range(step-x-1):
passage_number += 1
if a[i] <= a[i+1]:
a[i], a[i+1] = a[i+1], a[i]
swap_number += 1
print(passage_number, swap_number)
样本输入(两个字符串),然后输出:
83 1 4 1 5 9 2 6
5 8
((它现在返回诸如“ 21 14”等的smth,取决于变量的位置)
我认为问题出在变量位置不正确,但是大约6个小时我无法解决这个简单的问题。我尝试将变量ib设置在不同的位置,并使用变量“ step”将其过期,但是所有尝试均未成功。如果您能告诉我如何更改我的代码以解决此问题,我将非常感谢(突然,谷歌没有回答btw:D)
if a[i] > a[i+1]:
,而不是if a[i] <= a[i+1]:
passage_number += 1
需要放在for x in range(step):
和for i in range(step-x-1):
之间