二分查找要比较几次

单选题 难度 3

#binsearch#complexity

在 16 个有序数里找 13。

题目

数组 a 存着 1~16(升序)。用下面的标准二分查找 13,循环体一共执行( )次。

int l = 0, r = 15;
while (l <= r) {
    c++;
    int m = (l + r) / 2;
    if (a[m] == 13) break;
    if (a[m] < 13) l = m + 1; else r = m - 1;
}
  1. 4
  2. 13
  3. 8
  4. 16
来小码星球,动手写一遍 →