c - 搜索输入字符串的最佳搜索算法



我有一个理论问题。

我正在尝试找到最好的搜索算法来处理以下问题:我想处理一个输入字符串,输入字符串最多可以有 7 个独立且有效的参数(参数),它们在我的代码中开始不同的段。所有参数都可以出现在输入内的任何位置,这意味着输入没有顺序。

我的第一个想法是查看输入字符串,并在字符串中的每个位置对所有单独的有效输入执行 strcmp,这意味着我基本上会搜索字符串,直到找到匹配项或到达输入的末尾。但是,这将具有非常糟糕的运行时延迟,因为我会使用 n! 迭代输入。

我想知道是否有更好的方法来搜索输入,也许我可以在找到有效输入后减少样本量,所以我不必再次查看这个位置。如果有人能帮助我找到具有更好运行时效率的搜索算法,我会很高兴。

据我所知,不可能减小堆栈大小。我想提高效率的唯一方法是根据布尔值跳过堆栈内的位置?我可以跳过的每个位置都极大地改善了运行时,因为它必须与所有 7 个输入进行比较。

感谢您阅读:)

我敢打赌你的libc实现做得很好;)

strstr() 是你正在寻找的函数,去看看这个人: http://manpagesfr.free.fr/man/man3/strstr.3.html

最新更新