binary search
by amrendra kumar
JavaScript
const binarySearch = (array, data, start, end) => {
//debugger
if (start > end || !array.length) {
return -1;
}
let mid = Math.floor((start + end) / 2);
if (
array[mid].timestamp > data &&
(array[mid - 1].timestamp < data || array[mid - 1].timestamp.getTime() === data.getTime())
) {
return mid;
} else if (data < array[mid].timestamp) {
return binarySearch(array, data, start, mid - 1);
} else if (data > array[mid].timestamp || data.getTime() === array[mid].timestamp.getTime()) {
return binarySearch(array, data, mid + 1, end);
}
};
const binarySearch2 = (array, data) => {
console.log('hello')
let result = -1;
let start = 0;
let end = array.length - 1;
/* if(!array.length) {
return result
} */
while (start <= end) {
let mid = Math.floor((start + end) / 2)
if (array[mid] > data && (array[mid - 1] && array[mid - 1] <= data)) {
return mid
} else if (data < array[mid]) {
end = mid - 1;
} else if (data > array[mid] || data === array[mid]) {
start = mid + 1;
}
}
//console.log('result', result)
return result;
}
const arr = []
const res = binarySearch(arr, 4)
console.log('res', res)
//console.log(moment("2019-06-15T20:31:26.000Z").isAfter("2019-06-15T20:31:25.000Z"))