计算机科学与编程导论 笔记 11.测试与调试

Introduction to Computer Science and programming 
Lecture 12: More about debuggin, knapsack problem, introduction to dynamic programming
 
1.找错的几个原则
 
a.变量的顺序是否正确
b.拼写错误,包括大小写拼写
c.忘记初始化变量
d.值和对象是否相等 ==
e.别名是否重复(深拷贝和浅拷贝)
f. 函数的返回值可能会修改实参的值
g.注意实际运行的程序是否希望运行的程序
f.调试代码,而不是注释,不要过分相信注释
h.找别人来看看自己的代码或者把自己的程序解释给别人听
i.走开休息一段时间,再回来
j.欲速则不达,别抱着试试的态度急急忙忙地修改,问问自己第一个想到的方案能够解决所有问题?解决这个问题会带来新的问题吗?
k.代码并不是越长越好
l.保存旧版本的代码(使用git软件),否则你会发现调试4个小时之后的版本还不如4小时之前的
m.记录自己犯过的错,不要再次浪费你的时间
 
2.背包问题
a.解决问题的方法是依靠别人的思路(也许前人花了50年总结出来了很好的方法,没有必要去闭门造车),如果你积累的多了,那么以后遇到类似的问题你就有解决方案了。
b.贪婪算法 greedy algorithm 每一步都是对自己最优的
c.穷举算法 exhaustive enumeration 列出所有的可能性选择最好的,对于指数增长的可能性,穷举法并不好
d.Dynamic programming 动态规划,这个Dynamic 只是个名字,没有特别的含义。斐波拉契的递归函数的调用就是指数增长的,overlapping subproblems
 
 
 
 
 
 

转载于:https://www.cnblogs.com/izongjun/p/9211583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值