作业13-高效算法读后感

本书深入讲解算法基础,探讨经典问题的解决策略,强调正确实现算法的重要性。通过Python演示算法实现,解析时间复杂度,引导读者避免常见陷阱,提升程序效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本书介绍了多种解决某些经典问题的算法基础,描述了问题出现的场景,并用python提出了简单的解决方案。正确的实现算法,往往不是一件简单的事情,总需要避开陷阱,也需要应用一些技巧,保证算法能够在规定时间内实现本书在阐述算法实现实数加了重要的细节,以帮助理解。要想写出高效率的程序,必须先找到一个具有合适复杂度的算法,复杂度取决于运算时间和输入数据大小之间的关系,我们用朗道表达式来表达不同算法的复杂度,假设输入数据或参数的长度为n,且算法的运算时间,随n^2变化,那么我们就说这个算法的复杂度为O(n ^ 2)。
这本书给我的感悟是,首先要学会有组织成体系的思考,一定不要在尚未清楚理解题目的所有细节之前,仅凭一时冲动就开始编写程序。多给自己点时间,在程序代码的注释中添加问题描述,并明确指出算法的时间复杂度,在一段时间后,当你回头再看自己编写的程序是一定会欣赏这种做法,尤其这能让程序代码保持逻辑严密,结构紧凑,尽量使用题目中提到的名词,以便显示答案和题目的相关性,因为没有什么比调试变量名更没有实际意义的事了。
好好读题
什么样的时间复杂度可以被接受?注意题目中所提出的限制,在实现算法之前,做好复杂度分析。
输入数据是否有条件?有保证不要从题目的例子中猜测条件,不要作任何猜测,如果题目中没有说明图是非空的,那么某些测试用例中就有可能包含空的图。
使用什么样的数据类型?整数还是浮点数?数字是否有可能是负值?如果你使用JAVA或C++写程序,注意要确定中间变量的上限值,选择使用16位,32位或64位的整数。
做好计划
比较题目的例子,画纲要图找到待解决问题与已知问题之间的关联,如何利用实例的特殊性?
如果可能要利用内裤掌握经典的二分查找算法排序和字典等类库
使用题目中提到的名词命名变量名词越简短,表达越清晰越好
初始化变量,确保在任何测试用例使用前所有变量已经被重新初始化,继续上一个未完成的迭代,是一个很典型的错误
调试
现在犯错,为了以后有正确的反应。
设定和测试更多的测试用例,对于有限制条件的情况,裁判回复错误答案和输入数据很多的情况,设定更多测试。
解释算法,解释自己的算法。
简化实现把相似代码重新组织和重构。
冷静审视,先跳转到另一道题,然后再回头看,以获得新的视角。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值