一、串
定义
串V.S线性表
基本操作
比较操作
字符集编码
总结
二、存储结构
顺序存储与堆分配存储
方案二的字符串长度不可以超过255
块链存储
基本操作的实现
三、模式匹配
朴素模式匹配算法
性能分析
最好时间复杂度
最坏时间复杂度
思想总结
四、KMP 算法
简单模式匹配的缺点
改进思想
情况一
情况二
情况三:
4这里有可能多比较一次:因为4和6已经不等,但是1和6相同,这里仍会期待1和6相同,再进行一次比较,所以这里它并不是最优的算法,但是相比于朴素模式匹配,它还是少对比了两次
同理j指向3时少对比1次
总结:
具体代码实现
求next数组
代码实现求next数组
回顾总结
四、KMP 算法
简单模式匹配的缺点
改进思想
情况一
情况二
情况三:
4这里有可能多比较一次:因为4和6已经不等,但是1和6相同,这里仍会期待1和6相同,再进行一次比较,所以这里它并不是最优的算法,但是相比于朴素模式匹配,它还是少对比了两次
同理j指向3时少对比1次
总结:
具体代码实现
求next数组
代码实现求next数组
回顾总结
五、KMP 算法的优化
KMP算法存在的问题
例子2: