在数据结构学习时候最难的也是最重要的是算法的学习,很多同学不知道一些算法应该怎么学,也不知道应该掌握到什么程度,往往事倍功半。在此特写此篇文章,介绍一下程序设计题的算法怎么应对。
学习方法推荐:
第一步,先手动解算,比如二叉树遍历(比如比较复杂非递归的前序和中序),应该熟练地手动求解,即给一个树能快速根据该算法原理写出手动一步步解算过程,手动解算的目的也是为了掌握算法原理。第二步,在手动解算熟练基础上再看代码,要理解每一句代码,天勤数据结构的代码已经比较通俗易懂了,如果还是理解有一定困难,应该去百度查相关文章,网上比如CSDN网站里有很多优秀的解读每一个算法的文章,还可以选择找视频看,B一搜关键词会有很多优秀视频,总之想尽办法搞懂代码。一般半天能看会两个算法算是挺好的了。第三步,默写。这里的默写不是死记硬背地默写,而应该要回忆书上代码是怎么写的然后写下来,实在不会写就去翻书看看到底哪里不会然后总结记忆,写多了以后拿到手该算法就可以不停笔地写下来。默写不能只默写一遍或两遍,应该持续不断地默写,比如第一天学了A算法和B算法的代码,第二天应该在学习新东西之前默写之前的A算法和B算法的代码,然后再学习新的算法比如C算法和D算法的代码,第三天学习新算法之前先默写复习A、B、C、D算法代码再学习新算法E、F代码,第四天先默写复习A、B、C、D、E、F算法代码再学习G、H新算法代码……一次如果学不完两个新算法那就学一个也可以,但要保持之前学会的不断巩固,保持两周,我相信每一个算法都会刻进你的脑子里,而且算法细节也能随着重复次数的增多有了更深的体会,切记要持续不断默写,也可以根据艾宾浩斯遗忘曲线默写记忆。上述方法好处在于既能深刻理解算法,又能长久记忆。如果不像上述那样持续不断地做,可能某一个算法你当时是会了,但不出一个月你可能会忘得干干净净等于白学,而且考场上必须在15分钟内完整写出一道算法题,没有一定算法记忆储备,不太好完整快速写出来。有的学生就是不去学习记忆那些算法,就只是看,不把书合上,动手去写代码,到了考场晕晕乎乎,写了一段错误百出的代码上去,可想而知,这种是得不了几分的。无论是数学还是专业课,真正的高手不是复习到某一章对这一章熟练,而是有跳跃性思维,可以在各章节知识点之间跳跃,保证每一章的熟练,达到这一种程度就得需要重复和记忆。以上方法可在9到10月开始进行运用。大神请忽略上述方法!预览时标签不可点收录于话题#个上一篇下一篇