第一节课
认识时间复杂度
算法的好坏是通过算法的时间复杂度来评估的,去计算时间复杂度的时候要去掉常数项,去掉低位项,保留最高项。
评价算法的流程好坏,就是在这个算法中常数操作执行了多少次
笔试的技巧
需要准备各种各样的模板。自己要准备一个对数器来验证自己的算法是否正确。笔试时的验证器不一定对。对数器就是随机生成不同的数字,用自己准备好绝对正确的算法去与自己要验证的算法去验证,如果不一样则输出对应的数字。这样就能知道自己错在哪里。
如何分析递归函数的时间复杂度
大部分递归函数的时间复杂度都可以通过MARS公式来计算,这个公式可以去百度来了解。关于递归有一点要记得的是,所有的递归都可以化为非递归,因为递归其实就是个压栈的过程。程序员可以自己进行压栈,不必通过系统帮忙压栈。
小技巧
Mid=(L+R)/2容易导致溢出 可以写成Mid=L+(R-L)>>1。
这是第一篇博客,希望自己越来越努力,能写出更牛逼的文章。