zoukankan      html  css  js  c++  java
  • 浅谈数据结构-查找

    在上万条数据中,查找制定元素,这就是查找完成的功能。

    查找表:由同一种类型元素构成的集合,由于“集合”中数据元素之间存在松散的关系,因此查找表是一种灵活应用的数据结构。

    查找表的操作:

    1. 查询某个特定的数据元素是否在查找表中。
    2. 查询某个特定元素的各种属性。
    3. 在查找表中制定位置插入一条数据。
    4. 从查找表中删除特定的数据元素。

    查找表中四个操作之间是紧密关联的,比如,插入一个数据:首先判断元素是否在查找表中,有,返回,没有插入。判断一个元素在查找表中,先是查找元素,然后获取属性,然后和插入的元素进行比较,相等表示有。删除同样的道理。在后续的章节中会讨论到,在查找表创建时,往往是有顺序的,所以插入和删除时不能打乱查找表中各个元素的顺序。

    查找算法通常需要两个输入:

    1、被查找的序列

    2、要查找的关键词

    查找算法的输出参数和返回值:

    1、返回类型为 Error_code 的值用以表示是否查找成功

    2、如果查找成功,返回 success, 输出参数 position 定位到目标所在位置

    3、如果查找失败,返回 not present,输出参数可能是未定义或不同于已有位置的任何值

    一、查找表分类

    按照记录在表中的位置和特关键词之间的关系分为:静态查找表、动态查找表和Hash表

    静态查找表:仅作查询和检索操作的表。

    动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的数据元素。

    Hash表:根据设定的Hash函数和所选中的处理冲突方法,将一组关键词映像到一个有限的、地址连续的地址集,并以关键字在地址集中的映像作为相应的记录在表中的存储位置,如此构造所得查找表称之为“hash”表。

    对于静态表查找,经常用线性表结构来组织数据,这样可以使用顺序查找算法,如果再对主关键词排序,则可以用折半查找等技术进行高级查找。

    动态表查找,比较复杂,在完成静态表查找操作情况下,增加了插入和删除工作,可以考虑二叉排序树的查找技术。

    hash表中记录在表中的位置和它关键词之间通过hash函数建立一定的关系,当然用hash查找技术。

    查找性能分析:通常把关键词的最多比较次数和平均比较次数作为基本的技术指标,前者叫最大查找长度,后者叫平均查找长度。

    二、查找算法

    查找在我们生活中无处不在,比如查公交,查机票,查酒店。。。这些都是查找。

    查找算法分为:

    在后续的章节中会重点介绍这几种查找算法。

  • 相关阅读:
    Asp.Net服务器Cassini
    Vista系统Administrator帐户的激活与禁用
    SqlServer中的Top * With Ties
    SqlServer建远程服务连接
    SqlServer2005安装成功后补加Sa用户
    列出某个表中所有的列名
    水晶报表周期性打开报表失败
    Asp.net中文cookie的乱码问题
    HTML数据库编程、JavaScript数据库编程
    试图索引的限制
  • 原文地址:https://www.cnblogs.com/polly333/p/4791405.html
Copyright © 2011-2022 走看看