存储结构
一般采用顺序存储
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163159459-1396494536.jpg)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163200647-1182730928.jpg)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163201694-1682306254.jpg)
字符串比较
按字符编码的大小比较,对英文和其他符号,一般用ASCII编码
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163205038-209054832.jpg)
模式匹配
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163206928-1179497257.jpg)
朴素的模式匹配
回溯法
最好:O(n+m) 最差:O(n*m)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163207975-2045887606.jpg)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527163210678-2143849251.jpg)
KMP算法
- 计算“部分匹配表”
- 回溯长度 = 已匹配字符串长度 - 该子串最后一位的部分匹配值
"部分匹配"的实质是,有时候字符串头部和尾部会有重复,就不必回溯到开始位置。
Boyer-Moore算法
整理by Doing
参考资料:《数据结构(C++版)》王红梅