Ctrl+F (MacOS上的Cmd+F)是在文档中查找字符串实例的标准键盘快捷键。我最近在非常大的文档中使用了这个命令,大约有数百MB的ASCII字符。在Ubuntu的默认文本编辑器中,我注意到find通常需要相当长的时间才能工作,有时它似乎只是失败了。这让我想知道引擎盖下到底发生了什么。当我执行Ctrl+F时,运行的算法优化程度如何?对于长文件中的长查询字符串,简单的逐字符搜索与计算基因组学中的BLAST算法之间的运行时间差异可能很大。另外,当我在文本编辑器中像在VSCode中一样调用相同的底层代码时,Ctrl+F是否会像在Chrome中一样调用相同的底层代码,或者不同的应用程序使用不同的实现?
发布于 2021-07-04 05:28:18
我一直在使用VS Code和Np++进行编码,我也有同样的疑问。
我相信我们输入的每个字母和字符都会被编辑器/软件(word、浏览器或其他)在后台索引。当我们尝试使用ctrl + f查找字符串时,它只会突出显示所有位置上出现的字符串。这也可能是代码编辑器能够在声明新变量或调用函数时给出即时建议的原因。
索引在软件中是一项简单的任务。即使是浏览器也可以在加载页面后立即存储所有索引。所以我认为没有复杂的算法。但是搜索的速度让人感觉好像有什么大事情在发生。
https://stackoverflow.com/questions/67623872
复制相似问题