Bird
Raised Fist0
DSA C++programming~10 mins

Linear Search Algorithm in DSA C++ - Execution Trace

Choose your learning style10 modes available
Concept Flow - Linear Search Algorithm
Start at index 0
↓
Check if element at index == target?
No→Move to next index
↓
Index < array size?
No→Target not found
↓
Return index
Start from the first element, check each element one by one until the target is found or the list ends.
Execution Sample
DSA C++
int linearSearch(int arr[], int size, int target) {
  for (int i = 0; i < size; i++) {
    if (arr[i] == target) return i;
  }
  return -1;
}
Searches for target in array by checking each element from start to end.
Execution Table
StepOperationIndex (i)Element CheckedCondition (arr[i] == target)ActionResult/Return
1Check element044 == 3? FalseMove to next index
2Check element122 == 3? FalseMove to next index
3Check element233 == 3? TrueReturn index 22
4Exit----Search ends with index 2
💡 Target found at index 2, so search stops.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
i01222
arr[i]42333
Condition (arr[i] == target)FalseFalseTrueTrueTrue
Return valueNoneNoneNone22
Key Moments - 3 Insights
Why does the loop stop immediately when the target is found?
Because the condition arr[i] == target becomes True at step 3, the function returns the index immediately, stopping further checks as shown in execution_table row 3.
What happens if the target is not in the array?
The loop runs through all elements without finding the target, then returns -1 after the loop ends, indicating target not found. This is shown by the exit_note and would be a row after all elements checked.
Why do we check condition before moving to the next index?
We must check if the current element matches the target before moving on, to avoid missing the target. The execution_table shows condition checked first, then action decided.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'i' when the target is found?
A0
B2
C1
D3
💡 Hint
Check the 'Index (i)' column in step 3 where condition is True.
At which step does the condition arr[i] == target become True?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Condition (arr[i] == target)' column in the execution_table.
If the target was 5 instead of 3, what would happen in the execution_table?
AThe search would return -1 after checking all elements
BThe search would stop at step 1
CThe search would return index 2
DThe search would return index 0
💡 Hint
Think about what happens when no element matches the target in the loop.
Concept Snapshot
Linear Search Algorithm:
- Start from index 0
- Check each element if it equals target
- If yes, return index immediately
- If no, move to next element
- If end reached without match, return -1
Full Transcript
Linear Search Algorithm checks each element in an array one by one from the start. It compares the current element with the target. If they match, it returns the current index immediately, stopping the search. If no element matches by the end, it returns -1 indicating target not found. This simple method is easy to understand and works on unsorted arrays.

Practice

(1/5)
1. What is the main idea behind the Linear Search Algorithm?
easy
A. Use a hash table to find the target instantly
B. Check each element one by one until the target is found or list ends
C. Sort the list first and then search using binary steps
D. Divide the list into halves repeatedly to find the target

Solution

  1. Step 1: Understand linear search process

    Linear search checks each element in order, starting from the first, to find the target.
  2. Step 2: Compare with other search methods

    Other methods like binary search divide the list, but linear search simply checks one by one.
  3. Final Answer:

    Check each element one by one until the target is found or list ends -> Option B
  4. Quick Check:

    Linear search = check elements one by one [OK]
Hint: Linear search checks elements one by one [OK]
Common Mistakes:
  • Confusing linear search with binary search
  • Thinking linear search requires sorted data
  • Assuming linear search is faster than binary search always
2. Which of the following is the correct syntax to start a linear search loop in C++ for an array arr of size n?
easy
A. for (int i = 0; i <= n; i++)
B. for (int i = 1; i <= n; i++)
C. for (int i = 0; i < n; i++)
D. for (int i = 1; i < n; i++)

Solution

  1. Step 1: Understand array indexing in C++

    Arrays in C++ start at index 0 and go up to n-1, so loop should run from 0 to less than n.
  2. Step 2: Check loop conditions

    Loop with i < n ensures last index accessed is n-1, which is valid.
  3. Final Answer:

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

    Loop from 0 to n-1 = for (int i = 0; i < n; i++) [OK]
Hint: Array index starts at 0, loop till i < n [OK]
Common Mistakes:
  • Using <= n causes out-of-bound access
  • Starting loop at 1 misses first element
  • Using wrong loop condition causing runtime errors
3. What will be the output of the following C++ code?
int arr[] = {4, 2, 7, 1, 9};
int n = 5;
int target = 7;
int index = -1;
for (int i = 0; i < n; i++) {
  if (arr[i] == target) {
    index = i;
    break;
  }
}
std::cout << index;
medium
A. 2
B. 3
C. -1
D. 4

Solution

  1. Step 1: Trace the loop to find target 7

    Check elements: arr[0]=4 (no), arr[1]=2 (no), arr[2]=7 (yes), so index = 2 and break.
  2. Step 2: Output the index

    After break, index is 2, so output is 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    Target found at index 2 [OK]
Hint: Stop loop when target found, print index [OK]
Common Mistakes:
  • Forgetting to break loop after finding target
  • Printing target value instead of index
  • Confusing index with position (1-based)
4. Identify the error in the following linear search code snippet:
int arr[] = {5, 3, 8, 6};
int n = 4;
int target = 6;
int index = -1;
for (int i = 1; i <= n; i++) {
  if (arr[i] == target) {
    index = i;
    break;
  }
}
std::cout << index;
medium
A. Both A and B are errors
B. Loop condition should be i < n, not i <= n
C. Loop starts at 1 instead of 0, missing first element
D. No error, code works fine

Solution

  1. Step 1: Check loop start index

    Loop starts at 1, so arr[0] is never checked, missing first element.
  2. Step 2: Check loop end condition

    Loop runs while i <= n, so i can be 4, but arr[4] is out of bounds (valid indices 0-3).
  3. Final Answer:

    Both A and B are errors -> Option A
  4. Quick Check:

    Loop must start at 0 and run i < n [OK]
Hint: Loop from 0 to less than n to avoid errors [OK]
Common Mistakes:
  • Starting loop at 1 misses first element
  • Using <= n causes out-of-bound access
  • Ignoring array index limits
5. You have an unsorted array arr = {3, 5, 2, 9, 5, 2}. You want to find the first occurrence index of the number 5 using linear search. What will be the output and why?
medium
A. Error, because array has duplicates
B. 4, because linear search returns the last matching index
C. -1, because 5 is not found
D. 1, because linear search returns the first matching index

Solution

  1. Step 1: Understand linear search behavior with duplicates

    Linear search returns the first index where target is found, ignoring later duplicates.
  2. Step 2: Find first occurrence of 5 in array

    arr[0]=3 (no), arr[1]=5 (yes), so index = 1 is returned immediately.
  3. Final Answer:

    1, because linear search returns the first matching index -> Option D
  4. Quick Check:

    First occurrence index = 1 [OK]
Hint: Linear search stops at first match, returns its index [OK]
Common Mistakes:
  • Returning last occurrence instead of first
  • Assuming duplicates cause errors
  • Returning -1 incorrectly when target exists
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