Дан массив а [1,2,3,4,5,6,7,8,9,10], скажем, у нас есть алгоритм, который делает следующее:Вычислительная сложность алгоритма вложенного
for i in 0..a.length
for j in 0..a.length
...
У этого было бы большое время выполнения O O (n^2), потому что для каждого элемента он будет перемещаться по всему массиву.
Но что, если внутренний контур прошел только от внешнего указателя вперед?
for i in 0..a.length
for j in i..a.length
...
То есть, в сравнении, первый алго будет смотреть на n элементов на каждой итерации (внешняя петля). Второй алго смотрит на:
- п элементов на первой итерации
- п-1 элементов на второй итерации
- п-2 элементы на третьей итерации
- ...
- 1 элемент на последней итерации
При расчете времени выполнения Big O для этого вида алгоритма, все равно O (n^2)?
+1 для включения явной суммы. –