L
lxddd
Unregistered / Unconfirmed
GUEST, unregistred user!
次数=10000 子串长=4 母串长=140887
System 位置: 140870 时间: 2532
BMH 位置: 140870 时间: 1921
FPos 位置: 140870 时间: 3813
kmp 位置: 140870 时间: 5813
PosN_PosEx 位置: 140870 时间: 3437
Quick 位置: 140870 时间: 2813
FastPos 位置: 140870 时间: 4359
BMHTextPOS 位置: 140870 时间: 2469
------------------------------------------------
次数=10000 子串长=16 母串长=140887
System 位置: 0 时间: 2547
BMH 位置: 0 时间: 750
FPos 位置: 1242528 时间: 3828
kmp 位置: 0 时间: 5578
PosN_PosEx 位置: -1 时间: 3438
Quick 位置: 0 时间: 2828
FastPos 位置: 0 时间: 4375
BMHTextPOS 位置: 140870 时间: 922
------------------------------------------------
次数=10000 子串长=64 母串长=140887
System 位置: 0 时间: 2531
BMH 位置: 0 时间: 594
FPos 位置: 1242528 时间: 4343
kmp 位置: 0 时间: 7157
PosN_PosEx 位置: -1 时间: 4000
Quick 位置: 0 时间: 3281
FastPos 位置: 0 时间: 4969
BMHTextPOS 位置: 0 时间: 734
可以看出:
1.大名鼎鼎的kmp在子串长度不超过64时,速度是最慢的.超过64速度怎么样?有时间可以测试一下,不过我对这个算法没什么兴趣.
2.Delphi自带的Pos经过汇编优化,已经很快了
3.BMH算法没有使用汇编指令,全部Delphi语句,但速度已经快的令人吃惊了
4.子串越长,BMH反而越快,说明这个算法相当优秀
System 位置: 140870 时间: 2532
BMH 位置: 140870 时间: 1921
FPos 位置: 140870 时间: 3813
kmp 位置: 140870 时间: 5813
PosN_PosEx 位置: 140870 时间: 3437
Quick 位置: 140870 时间: 2813
FastPos 位置: 140870 时间: 4359
BMHTextPOS 位置: 140870 时间: 2469
------------------------------------------------
次数=10000 子串长=16 母串长=140887
System 位置: 0 时间: 2547
BMH 位置: 0 时间: 750
FPos 位置: 1242528 时间: 3828
kmp 位置: 0 时间: 5578
PosN_PosEx 位置: -1 时间: 3438
Quick 位置: 0 时间: 2828
FastPos 位置: 0 时间: 4375
BMHTextPOS 位置: 140870 时间: 922
------------------------------------------------
次数=10000 子串长=64 母串长=140887
System 位置: 0 时间: 2531
BMH 位置: 0 时间: 594
FPos 位置: 1242528 时间: 4343
kmp 位置: 0 时间: 7157
PosN_PosEx 位置: -1 时间: 4000
Quick 位置: 0 时间: 3281
FastPos 位置: 0 时间: 4969
BMHTextPOS 位置: 0 时间: 734
可以看出:
1.大名鼎鼎的kmp在子串长度不超过64时,速度是最慢的.超过64速度怎么样?有时间可以测试一下,不过我对这个算法没什么兴趣.
2.Delphi自带的Pos经过汇编优化,已经很快了
3.BMH算法没有使用汇编指令,全部Delphi语句,但速度已经快的令人吃惊了
4.子串越长,BMH反而越快,说明这个算法相当优秀