What if you could find anything in a messy list without sorting it first?
Why Linear Search Algorithm in DSA C++?
Imagine you have a messy drawer full of different colored socks, and you want to find a red sock. You start picking up each sock one by one, checking its color until you find the red one.
Doing this by hand is slow and tiring, especially if the drawer is very full. You might lose track or miss some socks, making the search frustrating and error-prone.
The linear search algorithm works just like checking each sock one by one, but it does it quickly and without mistakes. It goes through each item in a list until it finds the one you want or finishes checking all.
int findIndex(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) return i;
}
return -1;
}int linearSearch(const std::vector<int>& data, int target) {
for (size_t index = 0; index < data.size(); ++index) {
if (data[index] == target) return static_cast<int>(index);
}
return -1;
}Linear search lets you quickly find any item in a list without needing it to be sorted or organized.
Finding a friend's phone number in a small, unsorted contact list by checking each entry until you find the right one.
Linear search checks each item one by one.
It works on any list, sorted or not.
Simple but can be slow for big lists.
Practice
Linear Search Algorithm?Solution
Step 1: Understand linear search process
Linear search checks each element in order, starting from the first, to find the target.Step 2: Compare with other search methods
Other methods like binary search divide the list, but linear search simply checks one by one.Final Answer:
Check each element one by one until the target is found or list ends -> Option BQuick Check:
Linear search = check elements one by one [OK]
- Confusing linear search with binary search
- Thinking linear search requires sorted data
- Assuming linear search is faster than binary search always
arr of size n?Solution
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.Step 2: Check loop conditions
Loop withi < nensures last index accessed is n-1, which is valid.Final Answer:
for (int i = 0; i < n; i++) -> Option CQuick Check:
Loop from 0 to n-1 = for (int i = 0; i < n; i++) [OK]
- Using <= n causes out-of-bound access
- Starting loop at 1 misses first element
- Using wrong loop condition causing runtime errors
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;Solution
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.Step 2: Output the index
After break, index is 2, so output is 2.Final Answer:
2 -> Option AQuick Check:
Target found at index 2 [OK]
- Forgetting to break loop after finding target
- Printing target value instead of index
- Confusing index with position (1-based)
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;Solution
Step 1: Check loop start index
Loop starts at 1, so arr[0] is never checked, missing first element.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).Final Answer:
Both A and B are errors -> Option AQuick Check:
Loop must start at 0 and run i < n [OK]
- Starting loop at 1 misses first element
- Using <= n causes out-of-bound access
- Ignoring array index limits
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?Solution
Step 1: Understand linear search behavior with duplicates
Linear search returns the first index where target is found, ignoring later duplicates.Step 2: Find first occurrence of 5 in array
arr[0]=3 (no), arr[1]=5 (yes), so index = 1 is returned immediately.Final Answer:
1, because linear search returns the first matching index -> Option DQuick Check:
First occurrence index = 1 [OK]
- Returning last occurrence instead of first
- Assuming duplicates cause errors
- Returning -1 incorrectly when target exists
Ready to prove it?
Pass the test and this pattern moves unknown
