在python中交换整数比比较它们快吗?
我正在努力解决新年的混乱问题。 当我使用冒泡排序时,所有测试用例都成功执行。然而,当我试图计算数组中随着每次迭代而减小的较小位数时,我的代码在一些测试用例中超时 算法1计算较小数字的数目: 该算法为大多数测试用例提供正确的结果,但在少数测试用例中超时在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
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)
你知道为什么交换比比较快吗?是什么让你认为这只是交换的结果?第一个代码总是通过整个双循环,而第二个代码可以提前中断。