I have an array of size N, and N is <=200.
What would be the space complexity here.
O(1) or (N) – considering the constraint N.
Advertisement
Answer
Complexity is only relevant when you try to foresee the performances of your algorithm with various input. I don’t think it has any meaning to just speak about the space-complexity of an array without any context.
If you’ll always create an array of size N (hard-coded), it’s O(1), because no matter what input your algorithm crunches, the space taken by your array is the same.
If your N grows with the size of the input, it’s O(f(n)), where f(n) is the relation between n (size of input) and N (size of array).
NOTE : the formulation O(…) is a mathematical symbol to represent magnitude without any regard to the multiplier (sorry for the lack of precision, I’m way over my math degree and never learned the english terms), so, if N is a constant, O(N) = O(1) (they have the exact same meaning).
And if I’m remembering it right, if f < C * g , O(f) = O(g). Thus, if N is < 200 , O(N) = O(200) = O(1)