Binary Search Rotated Array
20
30
40
50
60
70
80
90
100
1
2
3
4
5
6
7
8
9
10
11
12
Code:
const binarySearchSortedArray = (array: number[], target: number): number => {
let start = 0;
let end = array.length - 1;
while (start <= end) {
let middleIndex = Math.floor((start + end) / 2);
if (array[middleIndex] === target) {
return middleIndex;
}
if (array[middleIndex] >= array[start]) {
if (target >= array[start] && target < array[middleIndex]) {
end = middleIndex - 1;
} else {
start = middleIndex + 1
}
} else {
if (target <= array[end] && target > array[middleIndex]) {
start = middleIndex + 1;
} else {
end = middleIndex - 1;
}
}
}
return -1;
}
;