Някой може ли да разпише как се получава сложността на следния фрагмент от код с вложени цикли?
Фрагмента е следния
sum=0
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
sum++;
Отговора е n(n-1)/2 , а примера е взет от „Програмиране = ++Алгоритми“. Въпроса е някой може ли да разпише подробно как се получава? Някава сума се намира най-вероятно. Ако да да включи и формулаата за сумата.
Аз все пак си мисля, че сложността в задачата не е (n - 1) * n/2, защото за i = 0 във втрешния цикъл имаме n стъпки, т.е. от 0 до n-1 включително и така стъпките намаляват, докато i = n-2 при което вътрешния цикъл ще се завърти 2 пъти. Т.е. имаме N + (N -1) +...+ 2 = (N + 2)(N - 1)/2, което би трябвало да е коректния отговор според мен.