У меня есть этот алгоритм (в c
кода для удобства):Сложность двух чешуйчатых петель
int algo(int *T, int size)
{
int n = 0;
for (int i = 1; i < size; i++) {
for (int j = i; j < size; j++) {
n += (T[i] * T[j]);
}
}
return n;
}
Что такое время сложность этого алгоритма?
Моя ставка это n * log (n)
, так как мы имеем два внахлест итераций на size
длины один раз, и на size - i
во второй раз, но я не уверен.
Формальное доказательство сложности приветствуется!
Возможный дубликат [Как найти временную сложность алгоритма] (http://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm) –