查找:基本概念

概述:

从内存中提取数值经常要比复杂的计算速度快很多,所以这样得到的速度提升是很显著的。

举个例子:一个经典的例子就是三角表。每次计算所需的正弦值在一些应用中可能会慢得无法忍受,为了避免这种情况,程序可以在刚开始的一段时间计算一定数量的角度的正弦值,然后保存在表中,当需要使用的时候直接从表中查找而不是再重新计算。

另外需要注意的一个问题是,尽管查找表经常效率很高,但是如果所替换的计算相当简单的话就会得不偿失,这不仅仅因为从内存中提取结果需要更多的时间,而且因为它增大了所需的内存并且破坏了高速缓存。如果查找表太大,那么几乎每次访问查找表都会导致高速缓存缺失,这在处理器速度超过内存速度的时候愈发成为一个问题。

基本概念:

  1. 查找表:同一类型的数据元素(记录)构成的集合。
  2. 静态查找表:对查找表只进行查找操作。动态查找表:不仅进行查找操作,而且在查找过程中还伴随着插入(查找的数据元素不在表中时)、删除某个数据元素的操作。
  3. 关键字(key):是数据元素(或记录)的某个数据项的值,用它可标识(识别)一个数据元素(或记录)。
  4. 平均查找长度(ASL):需和给定值进行比较的关键字个数的期望。
    ASL=i=1nPiCi
    n:表中记录个数
    Pi:查找第i个记录的概率
    Ci:找到第i个记录需要进行的对比次数

查找:基本概念