![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
正直的东东哥
这个作者很懒,什么都没留下…
展开
-
KMP
这是数据结构学习过程中遇到的第一个较难的算法,也是一个经典算法,关于字符串的模式匹配问题,相信也是被Java中String类中的模式匹配的方法用在它的方法具体实现中了。 首先要陈述一下问题: 一个主串,一个子串(又称模式),求出子串第一次出现在主串中的位置,这里的位置是主串的第一个字符在主串中的位置,不过这里给了一个初始值pos,要求从主串中第pos个位置开始去匹配。 KMP算法是对暴力匹配算法的改进,所以要先提一下暴力匹配算法的思路: 从初始位置开始,直接去比较,若当前字符相等,则继续比较下一个字符,运气原创 2021-03-31 00:07:39 · 87 阅读 · 0 评论 -
归并排序总结
上面是韩顺平老师的PPT中的图片 可以看到归并排序整体的思想还是挺容易理解的,先分,分到不能再分,然后再合,主要是采用递归的手段 关于递归,其实可以这样来粗略地理解它的思想:就是我当前的程序不想自己处理所有问题,而把部分问题抛给我的下一级,跟下一级说,只要你能把我交给你的解决,同时把结果返回给我,那我拿到了你的结果,我的所有问题就迎刃而解了 很多问题都用递归的手段解决,但是对于不同的具体的问题,怎么递归,依然是一个难点,不是说随便一个问题,一拿过来之后,告诉你可以用递归的方法,然后你就立马知道怎么做了 对于原创 2021-02-21 15:21:50 · 172 阅读 · 0 评论 -
快速排序算法分析
快排的难点不是在思想,而是在于有多种情况,然后要求你写出来的代码可以满足所有的情况,你不确定自己的代码写出来是不是健壮的,于是需要我们主动去分析各种情况,然后提炼出多种情况中真正共通的特性,这样才能使写出来的代码比较精炼和精准,而不是说需要你分多钟情况去讨论。 从网上可以看到很多代码都是短小精炼,精炼到你看不懂,所以还需要自己去主动总结多钟情况的共同特点。 经过下面自己的梳理,会发现,快速排序最重要的两点顾虑: 在当前循环过程中,防止进入死循环 在当前循环结束后,准备递归时,要防止进入死递归 共同点:原创 2021-02-20 18:47:25 · 219 阅读 · 0 评论