二分法求解非负数的平方根、快速查找有序数组的某个元素中有广泛的应用。
二分法求解非负数的平方根的C语言程序如下:
float SquareBoot(float x,float epsilon)
{
low=0;
high=max(x,1);//若x<1时,x的平方根大于x,故应该取max(x,1).
mean=(low+high)/2.0;
while(abs(mean*mean-x)>epsilon && count<=100)
{
if(mean*mean<x) low=mean;
else high=mean;
mean=(low+high)/2.0;
}
printf("x:%f\tepsilon:%f\tmean:%f\t",x,epsilon,mean);
return mean;
}