c++算法之二分查找

0)为什么感觉站点都没有人

1)什么是二分查找

二分查找,又称折半查找,即把数列分成两部分进行查找。

比如要在1,2,3,4,5,6,7,8,9,10中查找6,分成以下步骤:

1 查找中点5,由于5<6,则范围一定在6 7 8 9 10

2 查找中点为8,由于8>6,则范围在6,7之间。

3 中点为6,由于6就是要搜索的数,输出结果。

有两种方法,递归和非递归。

代码如下(为防止抄袭,发截图)

上为递归,下为非递归,两者都是在1,2,3,4,5,6,7,8,9,10中搜索5,并输出5的位置。

显然需要先排序。

其中mid=l+r>>1其实就是mid=(l+r)/2;

x>>1 <--> x/2

0 0 vote
Article Rating
Subscribe
提醒
4 评论
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Rolling_Code

代码看不清/xyx

qyh

审核通过

23786 蘑菇蘑菇蘑菇蘑

不是说二分查找有三种模式吗
分(l+r+1)/2和(l+r)/2
和while(l<r) while(l<=r) while(l+1<r)
r=mid r=mid + 1
l=mid l=mid-1
分好几种的啊
(我们老师说的

4
0
Would love your thoughts, please comment.x
()
x