在python中交换整数比比较它们快吗?

在python中交换整数比比较它们快吗?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我正在努力解决新年的混乱问题。 当我使用冒泡排序时,所有测试用例都成功执行。然而,当我试图计算数组中随着每次迭代而减小的较小位数时,我的代码在一些测试用例中超时 算法1计算较小数字的数目: 该算法为大多数测试用例提供正确的结果,但在少数测试用例中超时 b=b1=0 for i, v in enumerate(q): if (v - 1) - i > 2: print("Too chaotic") return for i in r

我正在努力解决新年的混乱问题。 当我使用冒泡排序时,所有测试用例都成功执行。然而,当我试图计算数组中随着每次迭代而减小的较小位数时,我的代码在一些测试用例中超时

算法1计算较小数字的数目: 该算法为大多数测试用例提供正确的结果,但在少数测试用例中超时

b=b1=0
for i, v in enumerate(q):
    if (v - 1) - i > 2:
        print("Too chaotic")
        return
for i in range(len(q)):
    for j in range(len(q[i+1:])):
        if q[i]>q[i+j+1]:
            b+=1
print(b)
b=0
b1=False
for i, v in enumerate(q):
    if (v - 1) - i > 2:
        print("Too chaotic")
        return
for i in range(len(q)-1):
    for j in range(len(q)-1):
        if q[j]>q[j+1]:
            q[j], q[j+1]=q[j+1], q[j]
            b+=1
            b1=True
    if b1:
        b1=False
    else:
        break
print(b)
使用气泡排序的算法2: 该算法对所有测试用例都能完美执行

b=b1=0
for i, v in enumerate(q):
    if (v - 1) - i > 2:
        print("Too chaotic")
        return
for i in range(len(q)):
    for j in range(len(q[i+1:])):
        if q[i]>q[i+j+1]:
            b+=1
print(b)
b=0
b1=False
for i, v in enumerate(q):
    if (v - 1) - i > 2:
        print("Too chaotic")
        return
for i in range(len(q)-1):
    for j in range(len(q)-1):
        if q[j]>q[j+1]:
            q[j], q[j+1]=q[j+1], q[j]
            b+=1
            b1=True
    if b1:
        b1=False
    else:
        break
print(b)

你知道为什么交换比比较快吗?

是什么让你认为这只是交换的结果?第一个代码总是通过整个双循环,而第二个代码可以提前中断。