Searching Algorithms (linear search, binary search)
How does ternary search compare to binary search in terms of comparisons?
function ternarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
while(left <= right) {
const third = Math.floor((right - left) / 3);
const mid1 = left + third;
const mid2 = right - third;
if(arr[mid1] === target) return mid1;
if(arr[mid2] === target) return mid2;
if(target < arr[mid1]) right = mid1 - 1;
else if(target > arr[mid2]) left = mid2 + 1;
else {
left = mid1 + 1;
right = mid2 - 1;
}
}
return -1;
}