字符串搜索算法

时间:2009-11-30 18:18:59

标签: algorithm

我有一个关于字符串匹配算法基准测试的项目,我想知道每个算法是否有标准,以便我能够通过实验获得公平的结果。我打算用java的system.nanotime来获取每个算法的运行时间。任何关于我的问题的评论或反应都非常感谢。谢谢!

3 个答案:

答案 0 :(得分:1)

我不完全确定你在问什么。但是,我猜你在问如何获得最真实的结果。您需要运行数百次甚至数千次迭代才能获得平均值。关闭语言可能执行的任何缓存以及不重用对象也非常重要,除非它是算法的一部分。

答案 1 :(得分:1)

我不完全确定你在问什么。但是,通过尝试计算给定算法在增加问题大小时的执行方式,可以回答对所提问题的另一种解释。使用原始时间来比较给定字符串大小的算法不一定允许准确比较。相反,您可以尝试使用不同字符串大小的每个算法,并查看算法在字符串大小变化时的行为。

马克的建议也很好。因此,您正在针对许多不同的字符串长度运行重复试验,以获得一种算法如何工作的图片,然后为下一个算法重复该算法。

答案 2 :(得分:1)

同样,目前还不清楚你在问什么,但除了托尼和马克所说的以外,还有另外一个想法:

要非常小心只测试“真实”输入或仅测试“随机”输入。一些算法被调整为在典型输入上做得很好(在英文文本中搜索一个单词),而其他算法则被调整为在病态难度的情况下运行良好。您需要将所有不同类型和大小的可能输入组合在一起,才能做出真正优秀的基准测试。