代码之家  ›  专栏  ›  技术社区  ›  Andy

快速文本编辑器查找

  •  9
  • Andy  · 技术社区  · 17 年前

    它们是在发现的开始,即加载索引,还是其他一些聪明的技术?

    我迫切需要一个更快的实现我所拥有的东西,这是一个从文本顶部到底部的极其缓慢的行走。

    任何想法都非常感谢。

    这是一个C#实现,但我对它的技术感兴趣,而不是实际的代码。

    4 回复  |  直到 17 年前
        1
  •  6
  •   Anton Gogolev    17 年前

    以…开始 Boyer-Moore 搜索算法。它需要一些预处理(速度很快),搜索效果也很好——特别是在搜索长的子字符串时。

        2
  •  1
  •   Michael Burr    17 年前

    如果大多数人只是使用基本的、简单的搜索技术(扫描第一个字符上的匹配项,然后测试命中是否成功),我不会感到惊讶。

        3
  •  1
  •   Elijah    17 年前

    格雷普

    虽然本身不是文本编辑器,但经常被许多文本编辑器调用。我很好奇你有没有试过grep的源代码?即使在搜索大文件时,它对我来说也总是非常快。

        4
  •  0
  •   Yashwardhan Pauranik kizu    6 年前

    另一个是散列搜索(我不知道是否有正式名称)。首先,计算模式的散列值,然后创建一个滑动窗口(与模式大小相同),将其移动到文本上,查看散列是否匹配。这里的想法是选择散列,这样您就不必为整个窗口计算散列,只需使用下一个字符更新散列(而旧字符将从散列计算中删除)。当您要搜索多个字符串时,该算法的性能非常好(因为您只需预先计算字符串的哈希值)。