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"))