为了账号安全,请及时绑定邮箱和手机立即绑定

C++折半查找的基本思想和步骤

C++折半查找的基本思想和步骤

C++
眼眸繁星 2018-07-05 09:09:55
急求C++折半查找的基本思想和步骤<详细的>
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

你对对半查找理解错了,你的min,max应该是下标而不是值

原理:类似于二分法解方程,二分查找首先比对序列中间的数是否是要找的数,如果不是,由于是有序数列,则看其在左侧区间还是右侧区间,舍弃不在的那一半区间,然后在剩余的区间重复刚才的办法,直到找到该数,由于每次舍弃一半的数据量,所以查找效率较高。

描述:设三个变量 left,right,middle分别为序列的两侧下标和中间下标,当判断出不在左侧区间,则 left=middle+1 ,从而利用右侧一半构造出一个新区间,否则 right=middle-1,利用左边一侧构造新区间,然后重复刚才过程,如此下去,要么找到数据,要么left>right,此时也应该停止查找,说明序列中没有该数。

查看完整回答
反对 回复 2018-07-31
  • 2 回答
  • 0 关注
  • 1179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信