我是python的新手。正试图解决问题,但由于TLE而陷入困境。下面的代码花费了太多时间,大约10秒。现在,我想知道正常的嵌套循环是如此低效或我做错了什么?循环在Python-3中花费太多时间
from datetime import datetime
arr = [1 for i in range(10000)]; # Originally had large size array of length ~10^4
l = len(arr);
ans = 0;
time1 = datetime.now();
# arr = sorted(arr);
for i in range(l):
for j in range(i+1,l):
ans+= arr[i]*arr[j];
print(datetime.now() - time1);
输出到上面的代码:
0:00:10.595463
我已经知道蟒蛇是基于解释和比编译语言,如C++或Java慢。但这很多!
由于python索引是在O(1)中完成的,所以不需要太多时间。
请帮我理解,如果这是python的正常行为或任何需要改变的地方。
虽然我可以使用numpy,但想以本地方式使用它。请帮忙。
你有49995000次的迭代,这似乎合法的给我。 –
如果您计算出您正在执行的步骤数:使用99999个循环减少的10000个循环,执行3 * 49995000行代码需要一些时间并不奇怪。 –
https://repl.it/FpH9/1 - 编辑后的版本将repl.it上的运行时间从11.5秒降至6.5秒,ish。 – TessellatingHeckler