Bird
Raised Fist0
Cprogramming~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 fast these comparisons run 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 compare(int a, int b) {
    if (a > b) {
        return 1;
    } else {
        return 0;
    }
}
    

This code compares two numbers and returns 1 if the first is greater, otherwise 0.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: One relational comparison (a > b)
  • How many times: Exactly once per function call
How Execution Grows With Input

Each time we call this function, it does one comparison no matter the numbers.

Input Size (n)Approx. Operations
1010 comparisons if called 10 times
100100 comparisons if called 100 times
10001000 comparisons if called 1000 times

Pattern observation: The number of operations grows directly with how many times the function is called, but each call is just one quick comparison.

Final Time Complexity

Time Complexity: O(1)

This means the comparison takes the same short time no matter what numbers we compare.

Common Mistake

[X] Wrong: "Comparing bigger numbers takes longer time."

[OK] Correct: Computers compare numbers in fixed steps regardless of size, so time stays constant.

Interview Connect

Understanding that simple comparisons run in constant time helps you reason about bigger programs where many comparisons happen.

Self-Check

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

Practice

(1/5)
1. Which of the following relational operators in C checks if two values are equal?
easy
A. !=
B. ==
C. =
D. >

Solution

  1. Step 1: Understand the purpose of each operator

    The operator == is used to compare two values for equality. The single = is an assignment operator, != checks inequality, and > checks if left is greater than right.
  2. Step 2: Identify the equality operator

    Since == compares two values for equality, it is the correct relational operator for this purpose.
  3. Final Answer:

    == -> Option B
  4. Quick Check:

    Equality check = == [OK]
Hint: Equality uses double equals ==, not single = [OK]
Common Mistakes:
  • Confusing = (assignment) with == (equality)
  • Using != instead of ==
  • Using > instead of ==
2. Which of the following is the correct syntax to check if variable a is not equal to variable b in C?
easy
A. a !== b
B. a <> b
C. a =! b
D. a != b

Solution

  1. Step 1: Recall the correct not equal operator in C

    In C, the operator for not equal is !=. Other options like <> or !== are not valid in C.
  2. Step 2: Verify the syntax correctness

    The expression a != b correctly compares if a is not equal to b.
  3. Final Answer:

    a != b -> Option D
  4. Quick Check:

    Not equal operator = != [OK]
Hint: Use != for not equal in C, not <> or !== [OK]
Common Mistakes:
  • Using <> which is invalid in C
  • Writing =! instead of !=
  • Using !== which is from other languages
3. What will be the output of the following C code?
int a = 5, b = 10;
if (a > b) {
    printf("True\n");
} else {
    printf("False\n");
}
medium
A. True
B. 5
C. False
D. 10

Solution

  1. Step 1: Evaluate the relational expression a > b

    Variable a is 5 and b is 10. Since 5 is not greater than 10, the expression a > b is false.
  2. Step 2: Determine which branch executes

    Because the condition is false, the else block runs, printing "False".
  3. Final Answer:

    False -> Option C
  4. Quick Check:

    5 > 10 = false [OK]
Hint: Compare values carefully; 5 > 10 is false [OK]
Common Mistakes:
  • Assuming 5 > 10 is true
  • Confusing else and if blocks
  • Ignoring relational operator meaning
4. Identify the error in the following C code snippet:
int x = 7, y = 3;
if (x =< y) {
    printf("x is less or equal to y\n");
}
medium
A. Using =< instead of <=
B. Missing semicolon after if condition
C. Using assignment operator inside if
D. Incorrect printf syntax

Solution

  1. Step 1: Check the relational operator syntax

    The operator =< is invalid in C. The correct operator for less than or equal is <=.
  2. Step 2: Confirm other syntax correctness

    The semicolon after if condition is not needed, assignment operator is not used here, and printf syntax is correct.
  3. Final Answer:

    Using =< instead of <= -> Option A
  4. Quick Check:

    Less or equal operator is <=, not =< [OK]
Hint: Remember <= for less or equal, not =< [OK]
Common Mistakes:
  • Swapping <= to =<
  • Adding semicolon after if condition
  • Confusing assignment = with comparison ==
5. Given the code below, what will be the output?
int a = 4, b = 4, c = 5;
if (a == b && b < c) {
    printf("Yes\n");
} else {
    printf("No\n");
}

Choose the correct output considering relational operators combined with logical operators.
hard
A. Yes
B. No
C. 4
D. Syntax Error

Solution

  1. Step 1: Evaluate the first condition a == b

    Both a and b are 4, so a == b is true.
  2. Step 2: Evaluate the second condition b < c

    b is 4 and c is 5, so b < c is true.
  3. Step 3: Combine conditions with logical AND

    Both conditions are true, so the combined condition is true, executing the if block.
  4. Final Answer:

    Yes -> Option A
  5. Quick Check:

    (4 == 4) && (4 < 5) = true [OK]
Hint: Both conditions must be true for && to print Yes [OK]
Common Mistakes:
  • Ignoring logical AND meaning
  • Mixing up == and =
  • Assuming false when both conditions true
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