知识大全 数据结构串之串运算的实现
Posted 位移
篇首语:惜时专心苦读是做学问的一个好方法。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构串之串运算的实现相关的知识,希望对你有一定的参考价值。
顺序串上的子串定位运算
子串定位又称串的模式匹配(Pattern Matching)或串匹配(String Matching) 在串匹配中 一般将主串称为目标(串) 子串称为模式(串) 假设T为目标串 P为模式串 且设 T= t t …tn P= p p …pm ( <m≤n) 用T[i j]表示T的子串 titi+ …tj ( ≤i≤j≤n ) 用P[i j]表示P的子串 pipi+ …pj ( ≤i≤j≤m ) 串匹配实际上是对于合法的位置 ≤i≤n m 依次将目标串中的子串T[i i+m ]和模式串P[ m ]进行比较 若T[i i+m ]=P[ m ](即 titi+ …ti+m = p p …pm ) 则称从位置i开始的匹配成功 亦称模式P在目标T中出现 若T[i i+m ]≠P[ m ](即存在某个 ≤j≤m 使得 ti+j ≠ pj ) 则称从位置i开始的匹配失败 上述的位置i又称为位移 当T[i i+m ]=p[ m ]时 i称为有效位移 当T[i i+m ]≠p[ m ]时 i称为无效位移 朴素的串匹配算法 基本思想 用一个循环来依次检查n m+ 个合法的位移i( ≤i≤n m)是否为有效位移 该算法至多匹配n m+ 次 每匹配要做m次比较 故算法至多比较m*(n m+ )次 时间复杂性为O((n m+ )*m) 通常情况下 m的值远小于n的值 时间复杂性可粗略地记为O(n*m) 链串上的子串定位运算
cha138/Article/program/sjjg/201311/23311相关参考