一、题
- 假如上海和杭州之间有一条高架线,高架线长度是1,000,000米(100万米),有一天高架线中有其中一米出现了故障;
- 请你想出一种算法,可以快速定位到出问题的地方。
二、解
1、算法:二分法
2、过程
(100万米)/(a*b)= c
a:2(二分法)
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次