<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')
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.