Searching Efficiency
Chapter 11.2 & 12.3
How to Search…
How to Search…
Linear Search
int search (String[] a, String searchValue) {
for (int i = 0; i < a.length; i++) {
if (a[i].equals(searchValue)) {
return i;
}
return -1;
}
Linear Search
Binary Search
Binary Search
Binary Search
int search (int[] a, int searchValue) {
int left = 0;
int right = a.length – 1;
while (left <= right) {
int midpoint = (left + right) / 2;
if (a[midpoint] == searchValue) {
return midpoint;
} else if (a[midpoint] < searchValue) {
left = midpoint + 1;
} else {
right = midpoint – 1;
}
return -1;
}
Binary Search
Binary Search