搜索算法是利用计算机的强大计算能力来有目的的穷举一个问题的解空间的部分或所有的可能情况,从而求出问题的解的一种方法。在具体的实现中往往是一段计算机代码,用来在大型的数据库中查找具有特定属性的项目。
搜索算法有不同的类型,比如线性搜索或者枚举法会按顺序进行查找,直到找到相关项。而二进制搜索比较适合搜索通过数字标记的关键字,比如驾照和身份证。数搜索树模型则是根据初始条件和规则来构造一个解答树来寻找目标节点。遗传算法等启发式的搜索则是通过多次迭代,丢弃掉那些坏的结果而直到留下最佳的结果。
更多时候,搜索算法对于用户是不可见的。使用者只需要提供搜索用的关键字,就可以得到最后的结果,而不需要知道结果是怎么得到的。比如最强大的google搜索,它通过检索巨大的数据库,在几秒钟内提供数以百万计的搜索结果。在学术界,大约有1.1亿份文件是存储在互联网的,普通用户是没有办法一一查看这些文件是否与自己相关的,谷歌学术搜索可以帮助过滤一部分没有用的信息。但批评家仍然不满足,他们觉得谷歌学术搜索的缺陷是无法将没有经过同行评审的文章和经过同行审查的文章进行区分对待。
在现在科研过程中,我们阅读到的文献除了其他文章的参考文献之外,其他的基本上都是来自大型数据库提供的搜索功能。在某种程度上可以说,我们对科研方向的认识程度是依赖于搜索引擎的准确性的。搜索引擎对我们来说可以是成也萧何,败也萧何,但问题是我们现在已经离不开它了。