前言
这门数据结构与算法,我本科上选修课(非计算机专业)通过“看教材+不懂内容查资料+做老师画的知识点范围题”的方式幸运地以满分结课。既然课程已经结束,为什么现在要重新复习?因为我找工作的环节需要考编程题,由于我把相关的概念已经忘的一干二净,于是我不得不硬着头皮重新开始。书籍文字的表现力在ppt演示、专业老师的讲解和弹幕的热心答疑下显得苍白无力。为了快速上道,我选择了王卓老师的B站网课。这比我自己闭门造车式的学习要快了很多。衷心感谢在这个开放的环境下大家一起做的努力!受到这种开源精神的启发下,我想我能不能为大家出一份力呢?于是我整理了这几个月从王卓老师这里学到的所有内容的笔记分享给大家。希望大家看老师视频里有不懂的地方参照着本笔记能有所收获,要是看后能有“啊!原来老师讲的是这个意思啊!”之类的惊叹,
然后怀揣着澎湃的心情冲到GitHub激动地一键三连(Github是【star】和【fork】),那我无形中会觉得收到大家的鼓励超级开心和满足滴~
下载相关
- 链接地址:就是它!点击此链接吧!
- 你可以
先点击【star】再点击【notebook.pdf】,最后进入页面后点击【download】 - 文件大小在130M左右,如果下载出来只有几kb,有可能是GitHub抽风,那么你需要找一个梯子下载o(╥﹏╥)o
本笔记的特色
- 收录老师讲的所有章节内容
- 解释老师没有细致讲解的地方(如排序的时间复杂度分析等)
- 建立了目录,方便读者定位、跳转翻页(你甚至可以用PDF工具的搜索关键字功能直接定位)
- 大部分章节都会有总结,方便大家复盘之前的内容
阅读技巧
- 页面是粉色、蓝色分别表示数据结构、查找排序算法内容(在目录页就能看到这两种颜色的区别)
- 一级标题是圈内数字(如①②③)、二级标题是字母(如abc)、三级标题是括号数字(如(1)(2)(3))、四级标题是罗马数字(如ⅠⅡⅢ)
特别提醒
- 涉及代码部分,本笔记截取的都是课件的伪代码,不提供可运行的源代码
- 笔记里面的注解包含自己对老师课件和上网查阅资料(来源CSDN等)的理解,所以仅作为一种思路供大家参考。本人也是学生,也会有理解错误的地方,不要当做圣经,如果出现了你认为不合理的地方,可以去质疑和反馈
- 如果没有看过老师讲的课件,建议配合一起使用,更助于大家的理解(o゚▽゚)o
结语
作为一个过来人,不论大家是第一次接触这门课,还是像我一样的第N次复习,在学习的时候都要牢记算法才是根本的。换言之,所有的语言最后都是为算法服务的。同时,数据结构与算法又是一种思想,最重要的是了解数据的存储结构和算法的逻辑结构。因此不要纠结学过的语言(限定语言的机试当我没说=。=)或者问“我只学了XXX能开始数据结构吗?”之类的问题或者为哪种语言去争高低。之所以说这些,也是在解释【特别提醒】中提到的“不提供可运行的源码”。进一步我也想说,大家也没必要去纠结伪代码的写法有哪些不符合程序编写标准(毕竟是伪对不对),重点应该关注到前面说的逻辑结构和存储结构上。当然如果在算法的逻辑结构全掌握的情况下,我非常大家去找一个oj(文章末尾附上了代码随想录的地址)去练习代码,这样既提升编码功力,又能更透彻的掌握某一数据结构及其算法ヾ(◍°∇°◍)ノ゙。
如果有什么问题,欢迎大家在Github上留言,我尽量做到一一回复。既然看到了这里,说明大家都是由耐心爱看说明的孩子呀~把这个劲头保持下去做什么事情都能成功的!那就先祝大家学习愉快吧(✪ω✪)!
相关链接
此处附上学习文章和视频以及代码练习的地方。由于大部分cdsn的文章在我截取相关内容到笔记后就直接关闭页面了,所以基本上没有几个能保存下来,仅存kmp的内容。如果大家想查证原版csdn的话,只能看我的笔记(截取的CSDN界面,原汁原味)或者自己再次百度了,希望大家谅解~
【官方-王卓老师课(无顺序版)】点击此链接
【民间-王卓老师课(有顺序版,推荐!!)】点击此链接
【KMP算法理解1 - 视频版】点击此链接
【KMP算法理解2 - 文字版】点击此链接
【代码随想录-练习编码能力的地方】点击此链接