Java Notes: Algorithms: Linear Search
Look at every element
This is a very straightforward loop comparing every element in the
array with the key. As soon as an equal value is found, it returns.
If the loop finishes without finding a match, the search failed and
-1 is returned.
Performance
For small arrays, linear search is a good solution because it's
so straightforward.
In an array of a million elements linear search
on average will take 500,000 comparisons to find the key.
For a
much faster search, take a look at
binary search.
Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/** Linear search of array for key. Returns index or -1 if not found.
* The upperbound index is not included in the search.
* This is to be consistent with the way Java in general expresses ranges.
* This searches from low to high index values.
* The performance is O(N).
* @param a Array of values to be searched.
* @param first Index of beginning of range. First element is a[first].
* @param upto Last element that is searched is a[upto-1].
* @param key Value that is being looked for.
* @return Returns index of the first match, or -1 if no match.
*/
public static int linearSearch(int[] a, int first, int upto, int key) {
for (int i = first; i < upto; i++) {
if (key == a[i]) {
return i; // Found key, return index.
}
}
return -1; // Failed to find key
}
|
Related Pages
Binary Search