当前位置: 代码迷 >> C语言 >> 菜鸟求助,关于“二分法”
  详细解决方案

菜鸟求助,关于“二分法”

热度:293   发布时间:2006-04-06 07:54:00.0
菜鸟求助,关于“二分法”
我自学老谭的《C程序设计》学到第六章,有一道课后习题让用“二分法”编一个程序,
本人没上过高中,不明白“二分法”是什么意思,上google查了一下,我现在是这样理解的:
假如让我找1和3两个正整数中间的数,我就用(1+3)/2得到2,假如让我找1-9中间的数,我就用(1+9)/2,得到5,这就是用了“二分法”,请问我的理解对不对呢?谢谢!!!
搜索更多相关的解决方案: 二分法  

----------------解决方案--------------------------------------------------------

二分法的条件是
原始数据要排序


----------------解决方案--------------------------------------------------------

二楼说的是,要排好序的才行,比如说已经从小到大排列好了,如果给的数比中间数大,那么就在右边找,反之左边找,重复这个过程.


----------------解决方案--------------------------------------------------------
是不是指针的时候学.
我现在还没有到这里来. 我才学的FOR...
----------------解决方案--------------------------------------------------------

并不需要指针的知识
正如上楼所说,得是一个排好序的数组才可以用二分法。
排序 升序or降序都无所谓
二分法的好处是减少查找所需数的次数,降低编译时间

列子:数组a[5]={1,2,3,4,5};
用二分法查2
设两个值high=4, low=0 mid=(high+low)/2 a[mid]=3
此时发现2<a[mid];
则low=0不变,high=mid;
就按这个方法逐步寻找;
这就是二分法。

上面是我的看法,如有部队,麻烦指正,谢谢


----------------解决方案--------------------------------------------------------
如果我要找的数里面没有呢?

----------------解决方案--------------------------------------------------------
急求

----------------解决方案--------------------------------------------------------

retrun -1;


----------------解决方案--------------------------------------------------------
二分法也不一定在查询中吧,也可以是用在求方程的根.
意思差不多.
----------------解决方案--------------------------------------------------------
不知道你说的是二分查找法还是利用二分法去解方程的,说清楚好不好啊
----------------解决方案--------------------------------------------------------
  相关解决方案