日撸java_day40

作者在实现图的算法过程中体验到理论与实际操作的差距,强调动手编码的重要性。文章提到了Java面向对象编程的优势,调试在开发中的关键作用,以及抽象思维对理解和解决问题的帮助。此外,还讨论了算法复杂度和优化策略,如空间换时间,以及不同问题转换为数据结构和算法逻辑的思考方式。
摘要由CSDN通过智能技术生成

对这几天写的做个小总结:

1.写过几个图的算法之后,深感理论和实际的差距,虽然实现的并不复杂,但是还是花了蛮久时间。尤其是到前两天的最短路径,生成树,以及昨天的关键路径,理论很早就学过,但是没有动手写过代码,到了要动手写的时候就吭哧吭哧半天抠出几行,代码和写汉字一样,键盘打多了,就会出现提笔忘字,编译器太智能了,换个记事本去敲两下估计也很抓狂,还是得日常多敲多练。

2. java面向对象不同于面向过程,而以前自己只会写个简单的c代码,写到图的时候就可以用到之前写的矩阵类,明显方便了很多,重写toString方法时候里用的自定义类的对象中的方法也要重写才能完成想要的结果。

3. 调试的重要性,往往第一遍写好之后严重的会出现异常报错,轻一点的就是和预期输出不符,偶有一遍就完全跑通的情况。还要以不同的测试用例测试,有一些边界情况要处理,或者异常数据之类的

4. 抽象思维,其实这一块好像把图画出来之后就会通畅很多,简单画一个草图,能帮助比较直观地理解算法流程。注意把问题转换为数据结构和算法逻辑

5.要注意算法复杂度,可以空间换时间来提高时间效率,比如用一个辅助栈,队列之类的,不过类似于深度优先这些,相较于递归的话,递归更简洁直观点

总的来说难度尚可,每天花点时间练代码保持手感还蛮重要的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值