Arrays and Iteration
Linear Search
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 usestd::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; thestatic_cast<int>(i)makes the size/index sign discipline explicit. - The replay shows the running index, the element being checked, and a
matchindicator 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`.