Bird
Raised Fist0
C++programming~5 mins

Relational operators in C++ - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Relational operators
O(1)
Understanding Time Complexity

Relational operators compare values to decide true or false. We want to see how long these comparisons take as input changes.

How does the time to compare values grow when we use relational operators in code?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


int compareValues(int a, int b) {
    if (a < b) {
        return -1;
    } else if (a == b) {
        return 0;
    } else {
        return 1;
    }
}
    

This code compares two numbers and returns which one is smaller, or if they are equal.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Up to two relational comparisons (<, ==)
  • How many times: Each comparison runs once per function call
How Execution Grows With Input

Each time we call the function, it does a fixed number of comparisons regardless of the numbers' size.

Input Size (n)Approx. Operations
10Up to 2 comparisons
100Up to 2 comparisons
1000Up to 2 comparisons

Pattern observation: The number of operations stays the same no matter how big the input numbers are.

Final Time Complexity

Time Complexity: O(1)

This means the time to compare two values does not grow with input size; it stays constant.

Common Mistake

[X] Wrong: "Comparing bigger numbers takes more time than smaller numbers."

[OK] Correct: Computers compare numbers by their bits in fixed steps, so size does not affect comparison time.

Interview Connect

Understanding that relational operators run in constant time helps you reason about bigger algorithms where comparisons happen many times.

Self-Check

"What if we compared two arrays element by element instead of two single values? How would the time complexity change?"

Practice

(1/5)
1.

Which of the following relational operators checks if two values are not equal in C++?

easy
A. >=
B. !=
C. <=
D. ==

Solution

  1. Step 1: Understand the meaning of each operator

    The operator == checks equality, <= and >= check less or equal and greater or equal respectively.
  2. Step 2: Identify the operator for 'not equal'

    The operator != means 'not equal' in C++.
  3. Final Answer:

    != -> Option B
  4. Quick Check:

    Not equal operator = != [OK]
Hint: Remember: != means not equal in C++ [OK]
Common Mistakes:
  • Confusing == with !=
  • Thinking <= means not equal
  • Mixing up >=
  • Using = instead of ==
2.

Which of the following is the correct syntax to compare if a is greater than b in C++?

int a = 5, b = 3;
if (___) {
    // code
}
easy
A. a > b
B. a => b
C. a >< b
D. a >= b

Solution

  1. Step 1: Recall the correct operator for 'greater than'

    The operator for 'greater than' is >. The operator >= means 'greater than or equal to'.
  2. Step 2: Check syntax correctness

    a > b is the correct syntax to check if a is strictly greater than b. Other options are invalid syntax.
  3. Final Answer:

    a > b -> Option A
  4. Quick Check:

    Greater than operator = > [OK]
Hint: Use > for greater than, >= for greater or equal [OK]
Common Mistakes:
  • Using => instead of >=
  • Using >< which is invalid
  • Confusing >= with >
  • Missing spaces causing syntax errors
3.

What will be the output of the following C++ code?

int x = 7, y = 10;
if (x <= y) {
    std::cout << "Yes";
} else {
    std::cout << "No";
}
medium
A. No
B. 10
C. 7
D. Yes

Solution

  1. Step 1: Evaluate the relational expression

    Check if x <= y means 7 is less than or equal to 10, which is true.
  2. Step 2: Determine which branch executes

    Since the condition is true, the if block runs and prints "Yes".
  3. Final Answer:

    Yes -> Option D
  4. Quick Check:

    7 <= 10 is true, so output is Yes [OK]
Hint: Check condition truth to decide output [OK]
Common Mistakes:
  • Confusing <= with <
  • Assuming else block runs
  • Printing variable values instead of strings
  • Ignoring the condition result
4.

Find the error in the following C++ code snippet:

int a = 4, b = 9;
if (a = b) {
    std::cout << "Equal";
} else {
    std::cout << "Not Equal";
}
medium
A. Incorrect variable declaration
B. Missing semicolon after if statement
C. Using assignment operator instead of equality operator in if condition
D. Using std::cout incorrectly

Solution

  1. Step 1: Identify the operator in the if condition

    The condition uses a = b, which assigns value of b to a instead of comparing.
  2. Step 2: Correct the operator for comparison

    To compare, the operator should be ==, so the condition should be a == b.
  3. Final Answer:

    Using assignment operator instead of equality operator in if condition -> Option C
  4. Quick Check:

    Use == for comparison, not = [OK]
Hint: Use == to compare, = to assign [OK]
Common Mistakes:
  • Using = instead of ==
  • Forgetting to compare variables
  • Assuming assignment returns boolean false
  • Ignoring compiler warnings
5.

Given the code below, what will be the output?

int a = 5, b = 5, c = 10;
if (a == b && c > b) {
    std::cout << "Match";
} else if (a != b || c < b) {
    std::cout << "Mismatch";
} else {
    std::cout << "Unknown";
}
hard
A. Match
B. Unknown
C. Mismatch
D. Compilation error

Solution

  1. Step 1: Evaluate the first if condition

    Check a == b (5 == 5) is true, and c > b (10 > 5) is true, so the whole condition is true.
  2. Step 2: Determine which block executes

    Since the first condition is true, "Match" is printed and the rest is skipped.
  3. Final Answer:

    Match -> Option A
  4. Quick Check:

    Both conditions true, so output is Match [OK]
Hint: Check && needs both true, || needs one true [OK]
Common Mistakes:
  • Confusing && and || operators
  • Ignoring short-circuit evaluation
  • Assuming else if runs after true if
  • Misreading relational comparisons
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