5
|
R.. GitHub STOP HELPING ICE · 技术社区 · 15 年前 |
![]() |
1
3
我的一些想法和部分答案: 暴力算法的最坏情况:
例如
SMOA的最坏情况:
差不多
最糟糕的情况是基于哈希的滚动: 任何字节序列都会导致散列与指针的散列发生冲突。对于任何合理快速的散列和给定的指针,应该很容易构造一个haystack,其散列在每个点上都与指针的散列冲突。然而,似乎很难同时创建长部分匹配,这是获得最坏情况行为的唯一方法。当然,对于最坏的情况,指针必须具有一定的周期性,并且可以通过调整最终字符来模拟散列。 双向最坏情况:
似乎是非常短的针与非平凡的MS分解-类似的东西
其他算法:
我真的只对
|
![]() |
2
0
不会直接回答你的问题,但你可能会发现书中的算法——关于字符串、树和序列的算法:计算机科学和计算生物学——很有趣(有许多关于子字符串搜索的新算法)。此外,它也是特殊和复杂案件的良好来源。 |
![]() |
3
0
这个过程可能会给出有趣的统计数据,尽管我现在没有时间测试: 在字符串长度上随机化, 然后随机选择该长度的字符串内容, 然后随机化子字符串的偏移量/长度(可能是字符串中没有的内容), 然后随机敲击子串(可能根本没有), 重复 |
![]() |
4
0
您可以通过以下方式递归生成容器字符串(相应地,包含测试值): 从空字符串开始,通过将字母表中的一个字符添加到左侧或右侧(两者都添加),生成集合中当前字符串的扩充所给出的所有字符串。 生成容器字符串的字母表由您选择。 测试两个字母表中包含的字符串。一个是组成容器字符串的字符串,另一个是它的补码。 |
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 10 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |