菜鸟求助,关于“二分法”
我自学老谭的《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;
----------------解决方案--------------------------------------------------------
二分法也不一定在查询中吧,也可以是用在求方程的根.
意思差不多.
----------------解决方案--------------------------------------------------------
不知道你说的是二分查找法还是利用二分法去解方程的,说清楚好不好啊
----------------解决方案--------------------------------------------------------