Walk an array once looking for a target value. Return the index of the first match, or -1 if none. The simplest possible search loop.

Algorithm

Canonical input arr = [4, 7, 1, 9, 3, 8] with target = 9 finishes after four compares; the matching index is 3.

Basic Implementation

basic.cpp
#include <iostream>
#include <vector>

int linearSearch(const std::vector<int>& arr, int target) {
    for (size_t i = 0; i < arr.size(); ++i) {
        if (arr[i] == target) {
            return static_cast<int>(i);
        }
    }
    return -1;
}

int main() {
    std::vector<int> arr = {4, 7, 1, 9, 3, 8};
    int target = 9;
    int result = linearSearch(arr, target);
    std::cout << result << std::endl;
    return 0;
}

Complexity

  • Time: O(n)
  • Space: O(1)

Implementation notes

  • C++: explicit for (size_t i = 0; i < arr.size(); ++i). Never use std::find(arr.begin(), arr.end(), target) — the lesson is teaching the walk.
  • Function signature int linearSearch(const std::vector<int>& arr, int target) documents the integer-array contract; the static_cast<int>(i) makes the size/index sign discipline explicit.
  • The replay shows the running index, the element being checked, and a match indicator on each frame.
early exit Return the index the moment `arr[i]` equals the target. Walking past it would defeat the point.
sentinel return A no-match walk falls off the loop and returns `-1`.