折半查找的原理是将有序表从中间分成两部分,然后将目标值与中间值进行比较,如果相等则查找成功,如果目标值小于中间值,则在前半部分继续折半查找,如果目标值大于中间值,则在后半部分继续折半查找,直到找到目标值或者查找范围为空。

根据题目给出的有序表,我们可以进行如下的折半查找过程:

  1. 初始时,将查找范围设为整个有序表,即起始位置为0,结束位置为12。
  2. 计算中间位置为(0+12)/2=6。
  3. 比较中间位置的值45与目标值82,由于45小于82,所以目标值在后半部分。
  4. 更新起始位置为中间位置+1=7,结束位置不变。
  5. 计算新的中间位置为(7+12)/2=9。
  6. 比较中间位置的值75与目标值82,由于75小于82,所以目标值仍然在后半部分。
  7. 更新起始位置为中间位置+1=10,结束位置不变。
  8. 计算新的中间位置为(10+12)/2=11。
  9. 比较中间位置的值95与目标值82,由于95大于82,所以目标值在前半部分。
  10. 更新起始位置不变,结束位置为中间位置-1=10。
  11. 计算新的中间位置为(10+10)/2=10。
  12. 比较中间位置的值82与目标值82,由于相等,查找成功。

在这个过程中,进行了4次比较后查找成功。

所以,折半查找值为82的结点时,需要进行4次比较后查找成功

有一个有序表为{139123241456275778295100}当折半查找值为 82 的结点时 次比较后查找成功。

原文地址: https://www.cveoy.top/t/topic/hRZB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录