Я новичок в python. Старался решить проблему, но застревал из-за TLE. Следующий код занимает слишком много времени, около 10 секунд. Теперь мне интересно, насколько нормальная вложенная петля настолько неэффективна, или я делаю что-то неправильно?Looping занимает слишком много времени в 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, но хочу использовать это в родном виде. Пожалуйста помоги.
Вы 49,995,000 итераций, кажется законным мне. –
Если вы выработаете количество шагов, которые вы принимаете: 10000 циклов с уменьшением циклов 99999, это не удивительно, что для выполнения 3 * 49995000 строк кода требуется некоторое время. –
https://repl.it/FpH9/1 - отредактированная версия снижает время выполнения на repl.it с 11,5 секунд до 6,5 секунд, ish. – TessellatingHeckler