在C语言中什么是二分法

 我来答
仁仰乎00eb8
2011-09-12 · TA获得超过118个赞
知道答主
回答量:79
采纳率:0%
帮助的人:69.4万
展开全部
举个例子吧,有一组有序数字,要查找某一数字,判断中间数字是否符合条件,不符合再从中间分成两半,选择符合的一半,再判断再分,直到找到或者不能再分为止。
注意一定是有序的,不能用于无序的数据查找。这样每次都砍去一半,时间复杂度仅为lg(n),查找非常快。
追问
在1~10中找5,10/2=5,这是算在1~5中还是5~10中?
追答
你先判断与中间的那个数是否符合,不符合肯定在两侧。明白吗?
帐号已注销
2011-09-12 · 超过19用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:70.7万
展开全部
与数学类似,将数据分为两类,判断解在那一类,再分,在判断,直到找到为止
追问
在1~10中找5,10/2=5,这是算在1~5中还是5~10中?
追答
在判断时有个分界例如1~mid,mid+1~10,
判断时首先判断是否等于mid,若等于,结束
在判断大小,若大于mid,则在mid+1~10之间,
否则在1~mid-1之间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小飞花儿的忧伤
推荐于2017-12-16 · TA获得超过1661个赞
知道小有建树答主
回答量:1152
采纳率:100%
帮助的人:328万
展开全部
每次判定都能决定解在两个区间中的哪一个。比如顺序表二分查找
对于[m,n]只要判定(m+n)/2的元素与待查找元素即可确定要查找的在哪个子区间里
追问
在1~10中找5,10/2=5,这是算在1~5中还是5~10中?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星生朵沫7960
2011-09-13 · TA获得超过926个赞
知道答主
回答量:256
采纳率:100%
帮助的人:167万
展开全部

就是不断取半 逐渐接近目标数值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式