Bird
Raised Fist0
C++programming~5 mins

Return values in C++ - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Return values
O(n)
Understanding Time Complexity

Let's see how the time it takes to run code with return values changes as the input grows.

We want to know how the program's steps increase when returning values from a function.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


int sumArray(int arr[], int n) {
    int total = 0;
    for (int i = 0; i < n; i++) {
        total += arr[i];
    }
    return total;
}
    

This function adds up all numbers in an array and returns the total sum.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-loop that adds each array element to total.
  • How many times: It runs once for each element in the array, so n times.
How Execution Grows With Input

As the array gets bigger, the number of additions grows too.

Input Size (n)Approx. Operations
1010 additions
100100 additions
10001000 additions

Pattern observation: The work grows directly with the size of the input array.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line as the input size grows.

Common Mistake

[X] Wrong: "Returning a value makes the function run instantly, no matter the input size."

[OK] Correct: The return itself is quick, but the work done before returning depends on input size, so time grows with input.

Interview Connect

Understanding how return values relate to time helps you explain function efficiency clearly and confidently.

Self-Check

"What if the function returned the sum of only the first half of the array? How would the time complexity change?"

Practice

(1/5)
1. What does the return statement do in a C++ function?
easy
A. It sends a value back to the place where the function was called.
B. It prints a value to the screen.
C. It declares a new variable inside the function.
D. It ends the program immediately.

Solution

  1. Step 1: Understand the purpose of return

    The return statement is used to send a value from a function back to the caller.
  2. Step 2: Differentiate from other statements

    Printing to screen or declaring variables are different actions; return specifically sends a value back.
  3. Final Answer:

    It sends a value back to the place where the function was called. -> Option A
  4. Quick Check:

    Return sends value back [OK]
Hint: Remember: return sends value back to caller [OK]
Common Mistakes:
  • Confusing return with printing output
  • Thinking return declares variables
  • Believing return ends the whole program
2. Which of the following is the correct syntax to return an integer value 5 from a function in C++?
easy
A. return = 5;
B. return(5)
C. return 5;
D. return: 5;

Solution

  1. Step 1: Recall correct return syntax

    In C++, the correct way to return a value is return value; with a semicolon.
  2. Step 2: Check each option

    return 5; uses return 5; which is correct. return(5) misses semicolon. Options C and D use invalid syntax.
  3. Final Answer:

    return 5; -> Option C
  4. Quick Check:

    Correct return syntax ends with semicolon [OK]
Hint: Use 'return value;' with semicolon [OK]
Common Mistakes:
  • Omitting semicolon after return
  • Using '=' with return
  • Using colon ':' instead of semicolon
3. What will be the output of the following code?
int add() {
  return 2 + 3;
}

int main() {
  int result = add();
  std::cout << result;
  return 0;
}
medium
A. 23
B. 5
C. 0
D. Compilation error

Solution

  1. Step 1: Analyze the add() function

    The function returns the sum of 2 + 3, which is 5.
  2. Step 2: Check main() output

    Main calls add(), stores 5 in result, then prints it using std::cout.
  3. Final Answer:

    5 -> Option B
  4. Quick Check:

    2 + 3 = 5 [OK]
Hint: Add inside return, then print result [OK]
Common Mistakes:
  • Thinking return concatenates numbers
  • Confusing return value with print output
  • Expecting zero without calculation
4. Identify the error in this function and choose the correct fix:
int multiply(int a, int b) {
  a * b;
}
medium
A. Add return before a * b;
B. Change function return type to void
C. Add semicolon after function declaration
D. Replace a * b; with return a + b;

Solution

  1. Step 1: Check function body

    The function calculates a * b; but does not return it.
  2. Step 2: Fix missing return

    To return the product, add return before a * b;.
  3. Final Answer:

    Add return before a * b; -> Option A
  4. Quick Check:

    Function must return value if return type is int [OK]
Hint: Return the calculated value explicitly [OK]
Common Mistakes:
  • Forgetting to use return statement
  • Changing return type unnecessarily
  • Confusing multiplication with addition
5. You want a function that returns the larger of two integers. Which of these implementations correctly returns the larger value?
hard
A. int max(int x, int y) { return; }
B. int max(int x, int y) { if (x > y) return y; else return x; }
C. int max(int x, int y) { return x + y; }
D. int max(int x, int y) { if (x > y) return x; else return y; }

Solution

  1. Step 1: Understand the goal

    The function should return the larger of x and y.
  2. Step 2: Check each option logic

    int max(int x, int y) { if (x > y) return x; else return y; } returns x if x > y, else y, which is correct. int max(int x, int y) { if (x > y) return y; else return x; } reverses logic. int max(int x, int y) { return x + y; } returns sum, not max. int max(int x, int y) { return; } returns nothing.
  3. Final Answer:

    int max(int x, int y) { if (x > y) return x; else return y; } -> Option D
  4. Quick Check:

    Return larger value using if-else [OK]
Hint: Return x if greater, else y [OK]
Common Mistakes:
  • Swapping return values in if-else
  • Returning sum instead of max
  • Missing return value
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard