8、给定序列:1 ,3,6 ,9,17 ,31,39 ,52,61 ,79,81 ,90,96。使⽤以下代码进⾏⼆分查找查找元素82 时 ,需要循环多少次, 即最后输出的 times 值为() 。
【答案】D
【考纲知识点】二分查找
【解析】82并没有出现在序列中,二分的层数如下,对[L,R],mid将区间分为了:
[L,mid-1],mid,[mid+1,R]三个部分,每向下一层times都需要自增一次;
time=1 left =0 mid=6 right=12
time=2 left =7 mid=9 right=12
time=3 left =10 mid=11 right=12
time=4 left =10 mid=10 right=10
共需四次,也是图中的红色的查找路线。