
int binSearch(int x, int a[], int n)
{
int low, high, mid;
low = 0;
high = n-1;
//注意,这里必须用<=, 用<不对,一直返回-1
while(low <= high)
{
mid = (low + high) / 2;
if(x < a[mid])
high = mid - 1;
else if(x > a[mid])
low = mid + 1;
else
return mid;
}
return -1;
}
这个案例是昨天在邢帅c语言的直播课老师讲的,有时间你也来学习下。每天晚上视频直播听不懂还能领取视频复习。搜邢帅c语言 就出来了
二分法查找有一个前提,数据应该是排好序的,假设从小到大排列,则:
首先用中间那个数(也可以不是正中间,差一两位没有关系,只要保证不忽略数据就行)与查找值比较,大于查找值就跳到左边。
然后重新设定新的数列。新的数列为,从最小的数值到中间那个数。
以这个新的数列为基础,重复以上步骤。
(二分法。就是将方程的有根取间对分,然后在选择比原区间缩小一半的有根区间,一直这样继续下去,直到得到满足精度要求的根。二分法计算过程简单,程序容易实现可在大范围内求根,但该方法收敛较慢,且不能求偶数重根和复根,一般用于求根的。。。)(笔记) SB,我笔记不是借你看过的嘛。。。
以上就是关于用C语言编写区间二分法过程的方法是什么全部的内容,包括:用C语言编写区间二分法过程的方法是什么、怎么用C语言求二分法、C语言中何为二分法,如何使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)