二分查找

京东校园招聘笔试真题

有一个有序表为 {1,5,8,11,19,22,31,35,40,45,48,49,50} ,当二分查找值为 48 的结点时,查找成功需要比较的次数( )

  • A、4
  • B、3
  • C、2
  • D、1
while(start <= end) {
    int mid = (start + end) / 2;
    if (target > array[i][mid]) {
        start = mid + 1;
    }else if (target < array[i][mid]) {
        end = mid - 1;
    }else {
        return true;
    }
}

记比较的中间节点位置为mid

  1. 区间为[0,12],mid=(0+12)/2=6,a[6]=48>31
  2. 区间为[7,12],mid=(7+12)/2=9,a[9]=48>45
  3. 区间为[10,12],mid=(10+12)/2=11,a[11]=48<49
  4. 区间为[10,10],mid=(10+10)/2=10,a[10]=48=48

 

发布了95 篇原创文章 · 获赞 20 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览