KMP算法在说明查重中kmp 暴力算法 比对-1830-源码+说明资料

转载地址: http://www.3q2008.com/soft/search.asp?keyword=1830

注:加速的 原理 是 比对字符串中 有重复的 字符串   算法会计算出跳转规律  来实现加速

kmp算法通过一个O(m)的预处理来构建一个字串f的前缀数组(即计算字符串f每一个位置的字符串的前缀和后缀公共部分的最大长度,不包括字符串本身,否则最大长度始终是字符串本身),接下来的匹配过程会不断地使用到该前缀数组(而且对于主串T只需遍历一次),使匹配的复杂度降为O(n+m)。

KMP算法的 原理  就是 先根据  查询 串规律 生成   next数组,   这个  数组存储 查询串的 相同字符串的 规律

然后 在比对样本的 时候进行跳跃   相对暴力算法达到加速的 作用.

但数据量 小的话  肯定是  KMP 算法 执行 慢   他要生成 规律位置的数组   这个要耗费资源和时间       比对的样本数据量非常大的,  生成NEXT数组的耗时会忽略不计,  KMP的效率就大于 暴力算法了,


 
KMP匹配无规律的匹配字符串效果不太好。
KMP匹配有关联的字符串效率比较高。
KMP匹配无关数据,效率比暴力匹配低。

表数量11

例文
字段名称数据类型自增主键允许为空默认值
idinteger0
论文名称nvarchar(500)''
论文作者nvarchar(50)''
论文内容nvarchar(2147483647)''
总字数integer0
上传日期datetime'0000-00-00 00:00:00.000000'

表:1

句子分割字符
字段名称数据类型自增主键允许为空默认值
idinteger0
句子分割字符nvarchar(50)''

表:2

性别
字段名称数据类型自增主键允许为空默认值
idinteger0
性别nvarchar(50)''

表:3

报告
字段名称数据类型自增主键允许为空默认值
idinteger0
检测IDnvarchar(50)
KMP耗时不包含生成next数组float
KMP耗时float
暴力耗时float
indexOf耗时float
例文IDinteger
句子nvarchar(2147483647)
例文中位置integer
字数integer

表:4

检测
字段名称数据类型自增主键允许为空默认值
idinteger0
检测内容nvarchar(2147483647)
字数integer
检测最小句子字数integer
句子数integer
未重复句子数量integer
重复句子数量integer
重复率float
检测日期datetime
用户IDnvarchar(50)

表:5

用户
字段名称数据类型自增主键允许为空默认值
idinteger0
账号nvarchar(50)''
密码nvarchar(50)''
姓名nvarchar(50)''
性别nvarchar(50)''
手机号nvarchar(50)''

表:6

管理员
字段名称数据类型自增主键允许为空默认值
idinteger0
账号nvarchar(50)''
密码nvarchar(50)''

表:7

v报告VIEW
字段名称数据类型自增主键允许为空默认值
idinteger0
检测内容nvarchar(2147483647)'0'
字数integer0
检测最小句子字数integer0
句子数integer0
检测日期datetime'0'
用户IDnvarchar(50)'0'
未重复字数Numeric0
重复字数Numeric0
重复率nvarchar(272)'0'

表:8

v未重复字数VIEW
字段名称数据类型自增主键允许为空默认值
未重复字数Numeric0
检测IDnvarchar(50)'0'

表:9

v重复字数VIEW
字段名称数据类型自增主键允许为空默认值
重复字数Numeric0
检测IDnvarchar(50)'0'

表:10

z检测VIEW
字段名称数据类型自增主键允许为空默认值
idinteger0
检测内容nvarchar(2147483647)'0'
字数integer0
检测最小句子字数integer0
句子数integer0
检测日期datetime'0'
用户IDnvarchar(50)'0'
未重复字数Numeric0
重复字数Numeric0
重复率nvarchar(272)'0'

表:11
转载地址: http://www.3q2008.com/soft/search.asp?keyword=1830

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值