JavaScript:二分法

136 阅读1分钟

一、题

  • 假如上海和杭州之间有一条高架线,高架线长度是1,000,000米(100万米),有一天高架线中有其中一米出现了故障;
  • 请你想出一种算法,可以快速定位到出问题的地方。

二、解

1、算法:二分法

2、过程

(100万米)/(a*b)= c

a2(二分法)
b:二分查找次数
c:当次查找的米数

即
100万米 / (2*1) = 50万米
100万米 / (2*2) = 25万米
100万米 / (2*3) = 12.5万米
    .
    .
    .
100万米 / (2**20) = 1

3、答案(JavaScript)

const resault = Math.LOG2E*Math.log(1000000) // 以2为底,100万的对数
console.log(result) // 20次