На всякий случай, O -- это асимптотическая оценка сверху. Что-то типа '<='. Точная оценка определяется через \Theta, а нижня оценка `>=` через \Omega.
В целом, можно посчитать точно через через прогрессию:
n + 2n + 3n + … + n ⋅ n = n ⋅ (1 + ... + n) = n * n * (n + 1) / 2 = O(n^3) (и \Theta(n^3)
Можно лениво через верхнюю оценку:
n + 2n + 3n + … + n ⋅ n <= n * n + ... n * n (n раз) = n^3 = O(n^3)
Нижняя оценка оценивается по такому же принципу:
n + 2n + 3n + … + n ⋅ n >= n/2 * n + ... n * n (n / 2 раз) >= n / 2 * n / 2 * n = \Omeg(n^3)