这个活动在说什么?
计算机存储了大量信息,它们必须能快速的进行搜索和筛选。而搜索引擎所面对的最大问题就是,他们必须要在极短时间内搜索数十亿个网页。计算机通常会利用文字、条码编号或是作者名称,这样的“搜索关键词”来寻找资料。
计算机可以非常快速的处理信息,你可能会认为它们是从头开始,一条一条的寻找,直到找到目标位置。这就是我们在第一个“线性搜索游戏”中所使用的方法。但这种方法 — 即使对计算机而言也过于缓慢了。举个例子,假设一间超市的货架上有一万种不同的产品,当柜员扫描一个条码时,计算机必须最多搜索一万次才能找到产品的名称与价格。这样即使检查每笔条码只花千分之一秒,检查完所有条码也要花10秒。想象一下,要花多少时间才能扫描完一个家庭买的所有东西?
二元搜索法看起来是比较好的方式。二元搜索法中,先将每笔数字照顺序排列,然后检查列表中间的项目,就可以知道要找的关键字是在列表前半还是后半。接着重复该动作,直到找到要搜索的物品位置。就像刚才超市里的例子,一万个物品的位置最多需要十四次检查,也就是大约两百分之一秒 — 几乎是一瞬间就可以完成搜索。
第三个寻找资料的方法叫做哈希法。在这种方法中,关键字本身会直接指示到哪里去找这个信息。举个例子,假设要搜索电话号码,你可以将所有数字加起来,然后除以十一并取余数。这个做法得到的哈希值就像是在活动四里所提到的同位检查数值 — 信息本身的一小部分是从信息的其他部分而来的。用这种方法,通常计算机可以很直接地找到要搜索的信息,不过还是有小部分的可能,在同一个位置有好几个资料,而计算机必须在这几个资料中在继续搜索才能找到目标。
Last updated