当前位置:
文档之家› KR字符串匹配算法的研究与实现
KR字符串匹配算法的研究与实现
2P , , 时 , 各 个 字 符 取 其 内 码 ( 如 A C I 。p ,3 … P 把 例 SI
码 ) , 设 P 的码 值 为 P 进 而 将 P数 值 化 为 : 值 假 。 ,
p i d + "d 2 …  ̄td p "  ̄‘ x  ̄ + x p2 x + () 1
pq ' () 5
本 子 串 . 判 断 其 对 应 字 符 是 否 相 等 . 定 模 式 串是 否 再 决
是 文本 串 的子 串
Hah( ( ) ro r( ,  ̄ d(' d + d - … + s ) - d( )q) mo tx  ̄ + l z2 o - k x + t 肿 × + ,lq) +之 £+ , ( 6)
1 K R字 符 串 匹配 算 法
K 串 匹配 算 法 描述 如 下13假 设 文本 串 T和模 式 R 21 -: 串 P中 出现 的 字 符集 合 为 ∑ , 该 集 合 的 大 小 I 为 d, 设 ∑I
然 后 可 以把 字 符 串看 成 一 个 d进 制 的数 。 当模 式 串 P =
然 后 可 以 找 到一 个 较 大 的 素 数 q 定 义 P , 和 r(
及 7( +1 的 散 列 函 数 为 : 1 ) ,
Hah( = o p , = d p d + d _ s p ) r d( q) mo ( x a p2 2 斗 × + o × +… pI ld
文 本 串 的 第 k k n m 1个 位 置 开 始 取 m 长 的 子 串 T (< — + )
如 果 T串 向 后 移 动 一个 位置 从 k l 取 m 长 的 子 + 处
串 T k 1 = k ,+, , , T( + ) ( + ) tlt2… t 则 + k k k 1 的散 列 码 为 :
则 (+ ) 1与 ( ) 足 如 下 的 关 系 : 满
r( 十 ) ( ) d tx %t* 后 1 = | x — ' d 'm i } k k () 4
个长度为 m 的子串 .也按 照这个散列 函数计算得到相
应 的 散 列 值 将 模 式 串 的散 列 值 与 文 本 串 的 所 有 散 列 值 逐一 比较 .找 出所 有 与模 式 串具 有 相 同散 列 值 的 文
K R字符 串匹配 算 法 的研 究 与 实现 ★
于 海 英
( 内蒙 古 财 经 学 院 计 算 机 信 息 管理 学 院 , 和 浩 特 0 0 7 ) 呼 10 0
摘 要 :字符 串 匹配 是 判 断 模 式 串( 串) 否 是 文 本 串 ( 串) 子 串。K/ 短 是 长 的 {算 法 是 一 种 随机 串匹 配
作 者 简 介 : 海 英 ( 9 6 , , 蒙 赤 峰 人 , 师 , 士 , 究 方 向 为 数 据 挖 掘 于 1 7 -) 女 内 讲 硕 研
@ 现 计 机 21. 代 算 012 0
研 究 与 开 发
如 果 相 等 .再 比较 相 应 的 子 串是 否 对 应 相 等 .如 果 相
等 . 明模 式 串 P是 文本 串 T的子 串 。 说
★基 金 项 目: 蒙 古 自治 区 高等 学校 科 学研 究 项 目基 金 ( . J 9 2 ) 内 NoN 0 1 5
收 稿 日期 :0 1 O —1 21一 1 4 修 稿 日期 :0 1 0 —1 21—2 5
个 长 度 m 的子 串 进 行 数 值 化 , 到其 散 列 码 。 设 从 得 假 ( )t t1… ,一 则 该 子 串 可 以数 值 化 为 : k = ,+ , t , k k
( = ( + 】d 。 …+ ) × f+ + 州 × + , l X d t+一 ^ ( 2)
Hah( + )  ̄ d( + ) q = o r( x 一 d + s T ( 1 ) mo r( 1 , ) r d( ) d £ × - o
,
q)
() 7
到 此 为 止 文 本 串 和 模 式 串 的 所 有 散 列 值 全 部 得
到 , 后 将 Hah( 和 所 有 的 Hah( ( ) 一 比较 , 然 s p) s ) 逐
( +1 = ld - f 2d _ ) £+ a + + 2 x × +…+ 打ld t棚 £+ × + , ^ () 3
函 数 计 算 得 到 一 个 对应 的 散 列 值 ,这 个 函数 叫 做 散 列
函数 ( 称 作 指 印 函 数 ) 把 文 本 串依 次 切 割 为 n m+ 或 。 — 1
字 符 串 匹 配 是 判 断 一 个 串 是 否 是 另 一 个 串 的 子 串 。对 于待 匹 配 的两 个 字 符 串 , 两者 中较 短 的作 为 模 把 式 串 , P表 示 , { P , … ,m ; 长 的 作 为 文 本 用 P p, 2P , p 】 较 串 , T表 示 , =t, , , , j 用 T f t t … t 。通 常 , 本 串 T是 较 长 23 文 的字 符 串 . 而模 式 串 P是 较 短 的 字 符 串 。 R算 法川 K 是一 种 随 机 串 匹配 算 法 . 由 K 是 ARP教 授 和 R I AB N教 授 合 作 开 发 的 该 算 法 把 长 度 为 i n的模 式 串按 照 某 个 哈希
算 法 , 细介 绍 K L串 匹配 算 法 的 算 法描 述及 代 码 实现 过 程 , 对 该 算 法进 行 测 试 , 论 该 详 t 并 讨
算 法 的 实现 效 率 。
关键 词 : K 字符 串 匹配 算 法 ;文本 串 ; 式 串; 列值 K 模 散
0 引
言
一
该 数 值 也 称 为 散 列 码 。同理 , 可 以对 文 本 串 的 每 也