Time and Space Complexity Analysis