1.实践题目名称:二分法求函数的零点
2.问题描述:已知一个函数和两个值,其中一个值使函数小于0,另一个值使函数大于0,方程在这两个值之间有且只有一个根,要求用二分法求出这个根。
3.算法描述:
首先使用万能头文件;
然后构造bool c(double m)函数,如果函数值double a小于等于0.0,则返回1,否则返回0;
之后构造主函数,定义m,min,max,并且在主函数里设置一个循环,
循环条件是max=min>1e-7,m是min和max的一半,如果c(m)!=0,则min=m;否则max=m;
之后在主函数里输出m。
4.使用了二分法,所以算法的时间复杂度为O(log n),算法的空间复杂度为O(1)
5.心得体会
收获:对二分法更加熟悉
疑惑:时间复杂度和空间复杂度的计算
6.分治法
分治法能减小时间复杂度,减少运行时间。