byteshift_strstr:stdlib 的 strstr() 和 memmem() 子序列搜索函数的简单快速的替代品

时间:2024-07-19 02:16:36
【文件属性】:

文件名称:byteshift_strstr:stdlib 的 strstr() 和 memmem() 子序列搜索函数的简单快速的替代品

文件大小:84KB

文件格式:ZIP

更新时间:2024-07-19 02:16:36

C

byteshift_strstr stdlib 的 strstr() 和 memmem() 子序列搜索函数的简单快速的替代品。 表现 在各种情况下, byteshift_strstr()可以比大多数子字符串搜索算法快得多。 在搜索相对较小的子字符串(例如单词)或搜索具有非常小的字母表(例如 DNA 序列)的文本时,预计它会比替代方案快得多的场景。 高性能是通过对大多数字符进行很少的处理、使用最少的工作内存并将预处理保持在最低限度来实现的。 如果性能很重要,请使用您的实际数据运行一些基准测试! 这应该是相对容易的,因为这些函数具有与其通用对应物相同的接口。 这些函数使用的算法的最坏情况复杂度为O(n × m) ,其中n是字符串的长度, m是子字符串的长度。 这与朴素的蛮力算法相同。 然而,在大多数现实场景中,它将以线性复杂度( O(n) )运行。 O(n)也是该算法的最佳情况复杂度


【文件预览】:
byteshift_strstr-master
----.gitignore(352B)
----byteshift_strstr.h(125B)
----byteshift_memmem.c(8KB)
----byteshift_memmem.h(232B)
----LICENSE(1KB)
----make_big_endian.h(3KB)
----README.md(8KB)
----tests()
--------setup.py(271B)
--------cython_wrappers.pyx(1010B)
--------test_strstr.py(6KB)
--------cython_wrappers.c(74KB)
----benchmark()
--------Benchmark.hsc(2KB)
--------de_bello_gallico.txt(144KB)
--------algorithms()
--------benchmark.cabal(985B)
----byteshift_strstr.c(5KB)

网友评论