大家一定经常遇到CAD病毒无法查杀干净,但是用win32api写的脚本速度又很慢的问题。
所以很多时候都要借助搜索引擎算法来杀毒,这创意来自 @建筑师的魔术手 。
就是借助Everything这个工具。
但是大家有没有想过,为什么这个工具速度这么快嘛???
其实《数学之美》——吴军
里面暗示过,google的算法是借助 稀疏矩阵 进行计算的
那么什么是 稀疏矩阵?
那就是带有很多 0 的行列式。
你可以用everything搜索everything,就可以找到你本机的搜索检索目录。
打开之后是这样的:
仔细观察就会发现,这个东西是一个二维嵌套的邻接矩阵导出的邻接表的数据结构。
可以百度 “邻接矩阵” “邻接表”
来详细了解。
具体就是这样的:
X A B C D E
A 1 0 0 0 0
B 0 0 0 0 0
C 0 0 1 0 0
D 0 0 0 0 0
E 0 0 0 0 0
全部数据
——————————————————
搜索带有A,C带True的区
X A C
A 1 0
C 0 1
这就是在ABC中检索”AC”
上面所示的算法就是稀疏矩阵的图示化解法。
所以搜索算法就是,把所有的数据都下载下来,用一种压缩编码的方式把每一个字符是否含有内容的Key值绑定在邻接表里面,做成静态过滤工具。
决定搜索引擎效率的是你能下载多少内容。