Bird
Raised Fist0
Goprogramming~5 mins

Relational operators in Go - Time & Space Complexity

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

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

How does the number of comparisons change when we check many values?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


package main

func countGreaterThan(nums []int, threshold int) int {
    count := 0
    for _, num := range nums {
        if num > threshold {
            count++
        }
    }
    return count
}

This code counts how many numbers in a list are greater than a given threshold.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: One comparison per number using the > operator inside a loop.
  • How many times: Once for each number in the input list.
How Execution Grows With Input

Each number in the list is checked once, so the work grows directly with the list size.

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

Pattern observation: Doubling the input doubles the number of comparisons.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line with the number of items checked.

Common Mistake

[X] Wrong: "Relational operators take longer as numbers get bigger."

[OK] Correct: The comparison time is the same no matter the number size; only the count of comparisons matters.

Interview Connect

Understanding how simple comparisons scale helps you explain efficiency clearly and shows you know how loops affect performance.

Self-Check

"What if we added a nested loop to compare every number with every other number? How would the time complexity change?"

Practice

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

Solution

  1. Step 1: Understand the meaning of relational operators

    Relational operators compare two values and return true or false based on the comparison.
  2. Step 2: Identify the operator for equality

    The operator '==' checks if two values are equal in Go.
  3. Final Answer:

    == -> Option C
  4. Quick Check:

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

Solution

  1. Step 1: Recall Go syntax for not equal operator

    In Go, the not equal operator is written as '!='.
  2. Step 2: Match the syntax with the options

    a != b uses 'a != b', which is correct syntax for not equal in Go.
  3. Final Answer:

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

    Not equal operator = != [OK]
Hint: Not equal in Go is always '!=' not '<>' or '!==' [OK]
Common Mistakes:
  • Using '<>' which is not valid in Go
  • Swapping '=' and '!' to '=!'
  • Using JavaScript style '!==' which is invalid in Go
3. What will be the output of the following Go code?
package main
import "fmt"
func main() {
    x := 10
    y := 20
    fmt.Println(x > y)
}
medium
A. false
B. 10
C. true
D. Compilation error

Solution

  1. Step 1: Understand the comparison x > y

    Variable x is 10 and y is 20. The expression checks if 10 is greater than 20.
  2. Step 2: Evaluate the expression

    Since 10 is not greater than 20, the expression evaluates to false.
  3. Final Answer:

    false -> Option A
  4. Quick Check:

    10 > 20 = false [OK]
Hint: Compare values carefully; 10 > 20 is false [OK]
Common Mistakes:
  • Assuming 10 > 20 is true
  • Confusing output with variable values
  • Expecting a number instead of boolean
4. Identify the error in the following Go code snippet:
package main
import "fmt"
func main() {
    a := 5
    b := 10
    if a = b {
        fmt.Println("Equal")
    }
}
medium
A. Variables 'a' and 'b' are not declared properly
B. The '=' operator is used instead of '==' in the if condition
C. Missing parentheses around the if condition
D. fmt.Println syntax is incorrect

Solution

  1. Step 1: Check the if condition syntax

    The condition uses 'a = b' which is an assignment, not a comparison.
  2. Step 2: Correct the operator for comparison

    To compare values, '==' must be used instead of '='.
  3. Final Answer:

    The '=' operator is used instead of '==' in the if condition -> Option B
  4. Quick Check:

    Use '==' for comparison, not '=' [OK]
Hint: Use '==' to compare, '=' only assigns [OK]
Common Mistakes:
  • Using '=' instead of '==' in conditions
  • Thinking parentheses are mandatory in Go if
  • Assuming fmt.Println syntax is wrong
5. Given the following Go code, what will be the output?
package main
import "fmt"
func main() {
    a := 15
    b := 15
    c := 20
    result := (a == b) && (c > b)
    fmt.Println(result)
}
hard
A. true
B. false
C. Compilation error
D. 15

Solution

  1. Step 1: Evaluate the first comparison (a == b)

    Both a and b are 15, so (a == b) is true.
  2. Step 2: Evaluate the second comparison (c > b)

    c is 20 and b is 15, so (c > b) is true.
  3. Step 3: Combine with logical AND

    Both conditions are true, so true && true is true.
  4. Final Answer:

    true -> Option A
  5. Quick Check:

    (15 == 15) && (20 > 15) = true [OK]
Hint: Both conditions true? Result is true [OK]
Common Mistakes:
  • Confusing && with || operator
  • Thinking one true means overall false
  • Expecting numeric output instead of boolean
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