JS算法初涉0.01v
js算法=========二分法
通过下方列子说明二分法查找(在有序的数据情况下)值得一用。
var array = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1111111112, 12, 13, 14, 15,
]
console.time('start1');
for (var i = 0; i < array.length - 1; i++) {
if (array[i] == 1111111112) {
console.log('正确')
}
}
console.timeEnd('start1'); //for 耗时
var TargetValue = 1111111112;
var Oindex;
var NewArray = array.sort(function (a, b) { return a - b; })
var MinV;
var MaxV;
console.time('start');
function dg(NewArray) {
Oindex = Math.ceil(NewArray.length / 2);
// console.log(Oindex)
if (TargetValue > NewArray[Oindex]) {
NewArray.splice(0, Oindex)
// console.log(NewArray, '获取')
dg(NewArray)
} else if (TargetValue < NewArray[Oindex]) {
NewArray.splice(Oindex)
// console.log(NewArray)
dg(NewArray)
} else {
console.log(NewArray[Oindex], 'success')
return true;
}
}
dg(NewArray)
console.timeEnd('start'); //折中法 耗时

浙公网安备 33010602011771号