Bird
Raised Fist0
Cprogramming~5 mins

Array traversal in C - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array traversal
O(n)
Understanding Time Complexity

When we look at array traversal, we want to know how the time to run the code changes as the array gets bigger.

We ask: How many steps does it take to visit every item in the array?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


void printArray(int arr[], int n) {
    for (int i = 0; i < n; i++) {
        printf("%d\n", arr[i]);
    }
}
    

This code goes through each element of the array and prints it once.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-loop that visits each array element.
  • How many times: Exactly once for each element, so n times.
How Execution Grows With Input

As the array size grows, the number of steps grows the same way.

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

Pattern observation: The steps increase directly with the number of items. Double the items, double the steps.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line with the size of the array.

Common Mistake

[X] Wrong: "Visiting each element takes the same time no matter how big the array is."

[OK] Correct: Actually, the total time grows because you do more steps as the array gets bigger, even if each step is quick.

Interview Connect

Understanding how array traversal time grows helps you explain and write efficient code in real projects and interviews.

Self-Check

"What if we nested another loop inside to compare each element with every other element? How would the time complexity change?"

Practice

(1/5)
1. What does array traversal mean in C programming?
easy
A. Adding elements to the array
B. Deleting elements from the array
C. Visiting each element of the array one by one
D. Sorting the array elements

Solution

  1. Step 1: Understand the term 'array traversal'

    Array traversal means going through each element in the array in order.
  2. Step 2: Match the definition with options

    Only Visiting each element of the array one by one describes visiting each element one by one, which is the correct meaning.
  3. Final Answer:

    Visiting each element of the array one by one -> Option C
  4. Quick Check:

    Array traversal = visiting elements [OK]
Hint: Traversal means visiting all elements one by one [OK]
Common Mistakes:
  • Confusing traversal with adding or deleting elements
  • Thinking traversal means sorting
  • Assuming traversal skips elements
2. Which of the following is the correct syntax to traverse an array arr of size n in C?
easy
A. for(int i = 0; i < n; i++)
B. for(int i = 1; i <= n; i++)
C. for(int i = 1; i < n; i++)
D. for(int i = 0; i <= n; i++)

Solution

  1. Step 1: Understand array indexing in C

    Arrays start at index 0 and go up to n-1 for size n.
  2. Step 2: Check loop conditions

    The loop must start at 0 and run while i is less than n (not equal), so for(int i = 0; i < n; i++) is correct.
  3. Final Answer:

    for(int i = 0; i < n; i++) -> Option A
  4. Quick Check:

    Loop from 0 to n-1 = correct traversal [OK]
Hint: Loop from 0 to less than n for array traversal [OK]
Common Mistakes:
  • Using <= n causes out-of-bounds error
  • Starting loop at 1 misses first element
  • Using wrong loop condition
3. What will be the output of the following code?
int arr[] = {5, 10, 15};
for(int i = 0; i < 3; i++) {
    printf("%d ", arr[i]);
}
medium
A. 5 10 15 0
B. 15 10 5
C. 10 15 5
D. 5 10 15

Solution

  1. Step 1: Understand the array elements

    The array contains 5, 10, and 15 in order at indices 0, 1, and 2.
  2. Step 2: Trace the loop output

    The loop prints elements from index 0 to 2 in order, so output is "5 10 15 "
  3. Final Answer:

    5 10 15 -> Option D
  4. Quick Check:

    Print elements in order = 5 10 15 [OK]
Hint: Prints elements in order from index 0 to n-1 [OK]
Common Mistakes:
  • Reversing order of output
  • Printing extra zero
  • Starting loop at wrong index
4. Identify the error in the following code snippet for traversing an array arr of size 5:
for(int i = 0; i <= 5; i++) {
    printf("%d ", arr[i]);
}
medium
A. Loop condition should be i < 5 to avoid out-of-bounds access
B. Loop variable should start from 1 instead of 0
C. Array size should be 6 instead of 5
D. No error, code is correct

Solution

  1. Step 1: Check loop condition

    The loop runs while i <= 5, so i goes from 0 to 5 inclusive (6 iterations).
  2. Step 2: Analyze array indexing

    Array indices go from 0 to 4 for size 5. Accessing arr[5] is out-of-bounds and causes error.
  3. Final Answer:

    Loop condition should be i < 5 to avoid out-of-bounds access -> Option A
  4. Quick Check:

    Use i < size to avoid errors [OK]
Hint: Use i < size, not i <= size, to avoid out-of-bounds [OK]
Common Mistakes:
  • Using <= instead of <
  • Starting loop at 1
  • Ignoring array size limits
5. Given an integer array arr of size n, write a code snippet to find the sum of all elements using array traversal. Which of the following is correct?
hard
A. int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; }
B. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; }
C. int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; }
D. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; }

Solution

  1. Step 1: Understand array indexing and loop range

    Array indices go from 0 to n-1, so loop must run i from 0 to less than n.
  2. Step 2: Check each option for correctness

    int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; } uses i <= n, which accesses arr[n] (out-of-bounds). int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; } starts at 1, missing arr[0]. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; } correctly sums all elements in reverse order, but the question asks for traversal in forward order. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } correctly sums all elements from 0 to n-1 in forward order.
  3. Final Answer:

    int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } -> Option B
  4. Quick Check:

    Loop from 0 to n-1 sums all elements [OK]
Hint: Sum elements by looping i from 0 to less than n [OK]
Common Mistakes:
  • Using i <= n causing out-of-bounds
  • Starting loop at 1 missing first element
  • Looping backwards with wrong indices
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