第六周学习总结
作业信息
教材学习内容总结
本周学习了计算机科学概论的第7章,主要内容有各种求解算法(在有限时间内用有限数据解决问题的明确指令集合)上课时老师着重讲了二分检索还有各种排序(选择排序,冒泡排序,插入排序),还有只适用于小数目的递归算法和解决大问题的分治法
python第10章中讲了递归运算,斐波那契数列和线性查找与二分查找运行时间的比较等等
教材学习中的问题及解决过程
是存在一些问题:
1.递归算法的的停止取决于一般情况还是基本情况?
解答:基本情况是答案已知的情况,一般情况是调用自身来解决问题的的更小版本的解决方案,结合题目分析,算法的停止属于已知情况,所以是基本情况
2.什么是无限递归?为什么会出现无限递归?
解答:无限递归就是参数为负时还一直往下进行的一种情况,子程序会不断调用自身,直到耗尽内存才会停止运行
就好比下图
代码调试的问题和解决过程
1.学习斐波那契数列时想过用递归算法去解决问题,算出N=10还行,值到达100时就无法运行,不能输出了,这就是斐波那契数列不能用递归算法的原因(计算量太大!)
所以我改用了for循环,用循环来代替递归运算
结果就成了
感悟
-
递归算法是一种朴实无华的算法,优点是简单,缺点是太慢了
-
代码学习过程是熟能生巧的过程
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | ||
---|---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | ||
第一周 | 65/65 | 2/2 | 17/17 | ||
第二周 | 65/130 | 4/6 | 10/27 | ||
第三周 | 260/390 | 3/9 | 20/47 | ||
第四周 | 60/450 | 2/11 | 10/57 | ||
第五周 | 300/750 | 2/13 | 10/67 | ||
第六周 | 330/1080 | 3/16 | 10/77 |
|