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查找技术。

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

    二、查找算法

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

    查找算法分为:

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

  • 相关阅读:
    深入学习高级非线性回归算法 --- 树回归系列算法
    监督学习中关于线性回归问题的系统讨论
    非均衡分类问题的思考与问题与解决思路
    使用 AdaBoost 元算法提高分类器性能
    支持向量机 (SVM)分类器原理分析与基本应用
    Logistic回归分类算法原理分析与代码实现
    mysql 数据库安装步骤个人总结
    mysql可重复读现象及原理分析
    ssm所需的jar详解
    获取客户端ip地址--getRemoteAddr()和getRemoteHost() 区别
  • 原文地址:https://www.cnblogs.com/polly333/p/4791405.html
Copyright © 2011-2022 走看看