Просмотр примеров и объяснение времени выполнения вложенных циклов для http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Weiss/L03-BigOh.htm#Counting,, а второй пример мне не подходит.
пример 1
sum = 0;
for( i = 0; i < n; i++)
for( j = 0; j < n; j++)
sum++;
Имеет смысл сразу. Снаружи для цикла O (n). Внутренний цикл - это O (n). Умножьте их вместе, O(n) * O(n) = O(n*n) = O(n^2).
Второй пример. Внутренний цикл не начинается с 0.
sum = 0;
for( i = 0; i < n; i++)
for( j = i; j < n; j++)
sum++;
Время выполнения внутреннего цикла будет ( 1 + 2 + … + n) = n*(n+1)/2 = O(n^2)
Как и в первом примере, внешний цикл работает с O (n). Поэтому общее время работы составляет O(n) * O(n^2) = O(n^3).
Я прав, или я что-то упустил?
Спасибо!