以算法为例,是否存在讲解者认为“懂得自然懂了,不懂的我说再多也白搭”的心理

算法讲解其实就是数学证明嘛。
你们非要按照工程的方法去一步一步演绎当然感觉似是而非。
所以如果数学定理的证明可以一行一行讲清楚的话,KMP也可以。至于读者能不能看懂,那取决于基本知识知道多少了。
【以算法为例,是否存在讲解者认为“懂得自然懂了,不懂的我说再多也白搭”的心理】 换一个方式说,数学定理证明你能看懂是因为你已经知道了(学会了)他证明每一步用的引理或者公理。那么KMP讲解想看懂你就需要先理解前缀后缀之间的关系。

发现偏题了,补充一下:“懂得自然懂了,不懂的我说再多也白搭”其实翻译过来的是,愿意去学习前置理论的人自然也能学会,不愿意系统地学习的人那自然也就没法给你讲。

还可以再补充一下为啥有些算法就更容易理解(背诵), 比如Dijkstra。可能刚好算法流程和我们生活经验中找路的办法相似,所以我们理解起来快一点。但是如果要说前置知识的话说不定最短路算法的要求比KMP还高一点?如果你生活中每天都需要在超长字符串中把相同的子串找出来,说不定理解KMP会简单点?

■网友
学kmp时候并没有感觉晦涩难懂啊…我看的是打印的一本资料。找了下应该是https://www.cnblogs.com/zhangtianq/p/5839909.html改动的。是不是可能有时候选择用来学习的资料不适合当前的知识储备。比如刚开始自学C语言的时候,看的第一本书是谭浩强的《c程序设计》第二版。看了没多少页就有点懵,作为完全零基础,并不知道为什么用很多前面没讲到的东西来讲述。于是停下了一段时间(中考前)。后来换了其他书看完几本。再回去看《c程序设计》就没有问题了。


    推荐阅读