静态查找和动态查找

来源:互联网 发布:淘宝缴费 编辑:程序博客网 时间:2024/06/12 11:08

参考:http://blog.csdn.net/pamchen/article/details/8476134

首先无论是静态查找还是动态查找,都要有查找的对象,也就是包含很多同类型数据的“表”,这个“表”可以理解为一个由同类型数据元素组成的一个“集合”,该集合可以用各种容器来存储,例如数组、链表、树等,我们统称这些存储数据的数据结构为——查找表。可见,查找表有时是我们传统意义的表,有时候是很复杂的一种结构。

一、静态查找

静态查找就是我们平时概念中的查找,是“真正的查找”。之所以说静态查找是真正的查找,因为在静态查找过程中仅仅是执行“查找”的操作,即:
(1)查看某特定的关键字是否在表中(判断性查找);
(2)检索某特定关键字数据元素的各种属性(检索性查找)。
这两种操作都只是获取已经存在的一个表中的数据信息,不对表的数据元素和结构进行任何改变,这就是所谓的静态查找。

静态查找包括:

  1. 顺序查找
  2. 折半查找
  3. Fibonacci
  4. 分块查找
    详细可以参考:http://blog.csdn.net/wangzi11322/article/details/45456871

二、动态查找

看到上面静态查找的概念,动态查找就很好理解了,个人总觉得动态查找不像是“查找”,更像是一个对表进行“创建、扩充、修改、删除”的过程。动态查找的过程中对表的操作会多两个动作:
(1)首先也有一个“判断性查找”的过程,如果某特定的关键字在表中不存在,则按照一定的规则将其插入表中;
(2)如果已经存在,则可以对其执行删除操作。动态查找的过程虽然只是多了“插入”和“删除”的操作,但是在对具体的表执行这两种操作时,往往并不是那么简单。

动态查找包括:
1. 二叉排序树
2. 平衡二叉树
详细参考:http://blog.csdn.net/wangzi11322/article/details/45456971

0 0
原创粉丝点击