<p>数组长度为100000查找90000</p>
<p>二分查找所用时间:<span id="time2"></span>ms</p>
<p>简单查找所用时间:<span id="time3"></span>ms</p>



function binarySearch (list, item) {
  let min = 0
  let max = list.length - 1
  
  while (min <= max) {
    let index = Math.floor((min + max) / 2)
    let val = list[index]

    if (val === item) {
      return index
    } else if (val > item) {
      max = index - 1
    } else {
      min = index + 1
    }
  }

  return null
}

var lists = []
var len = 100000
var searchItem = 90000
var time2 = document.getElementById('time2')
var time3 = document.getElementById('time3')
var startTime = 0

console.time('Time 1')
for (var i = 0; i < len; i++) {
  lists.push(i)
}
console.timeEnd('Time 1')

console.time('Time 2')
startTime = new Date().getTime()
binarySearch(lists, searchItem)
time2.innerText = new Date().getTime() - startTime
console.timeEnd('Time 2')

console.time('Time 3')
startTime = new Date().getTime()
for (i = 0; i < len; i++) {
  if (i === searchItem) { break; }
}
time3.innerText = new Date().getTime() - startTime
console.timeEnd('Time 3')
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.