二分查找

京東校園招聘筆試真題

有一個有序表爲 {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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章