For example, run times for simple search and binary search don’t grow at the same rate
| # items (input) | Simple search | Binary search | How much faster? | | — | — | — | — | | 100 | 100 | 7 | 14 times | | 10,000 | 10,000 | 14 | 700 times | | 1,000,000 | 1,000,000 | 20 | 50,000 times |
Big O | Example |
---|---|
O(log n) | Binary search |
O(n) | Simple search |
O(n log n) | Quicksort |
O(n^2) | Selection sort |
O(n!) | Traveling salesman |
Binary search
function binarySearch(nums, target) {
let left = 0;
let right = nums.length - 1;
while (left < right) {
let mid = Math.floor((left + right) / 2);
if (target === nums[mid]) {
return mid;
} else if (target < nums[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return null;
}