Skip to content
文章目录

二分查找

前提

只能在有序数组中进行查找,如果原始数据是无序的需要先对原始数据进行排序

实现

ts
function bianarySearch<T>(searchItem: T, dataList: T[]): { index: number; item: T } | undefined {
  if (!dataList || dataList.length === 0) {
    return
  }
  let startIndex = 0
  let endIndex = dataList.length - 1
  if (dataList[startIndex] === searchItem) {
    return { index: startIndex, item: dataList[startIndex] }
  } else if (dataList[endIndex] === searchItem) {
    return { index: endIndex, item: dataList[endIndex] }
  } else {
    let mid = Math.floor((startIndex + endIndex) / 2)
  }
}