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'); //折中法 耗时
posted @ 2018-11-06 16:30  前端大师  Views(264)  Comments(0)    收藏  举报