I know the big-O complexity of this algorithm is O(n^2), but I cannot understand why.
O(n^2)
int sum = 0; int i = 1; j = n * n; while (i++ < j--) s
During every iteration you increment i and decrement j which is equivalent to just incrementing i by 2. Therefore, total number of iterations is n^2 / 2 and that is still O(n^2).
i
j