专题之查找

查找

一、查找基本概念

  • 查找是什么

    根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或记录。有主关键字和次关键字之分。

  • 在哪里查找

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

  • 查找什么

    查找某个“特定的”数据元素是否在查找表中,检索数据元素属性,插入数据元素,删除数据元素。

  • 查找表分类:

    静态查找表:仅作“查询”操作的查找表

    动态查找表:作“插入”和“删除”操作的查找表。

  • 查找算法的评价指标:

    平均查找长度(ASL,average search length):关键字的平均比较次数

  • 查找过程中我们要研究什么

    查找的方法取决于查找表的结构,即表中数据元素是依何种关系组织在一起的。

 

二、线性表的查找

(1)顺序查找

  对于顺序表或线性表表示的且无序的静态查找表可以顺序查找。

  直接实现程序过于简单,略。

  改进:可以把待查关键字存入表头,可免去查找过程中每一步都要检测是否查找完毕,加快速度。程序如下

int Search_Seq(int a[20],int key)
{
    a[0]=key;
    for(i=20-1;a[i]!=key;--i);
    return i;
}

(2)折半查找

  每次将待查记录所在区间缩小一半

  缺点:只适用于有序表,且限于顺序存储结构(对链式存储而言很麻烦)

  程序简单,略

(3)分块查找(也叫索引顺序查找)

  实际例子:查字典,a开头一块,b开头一块等等……

  实际步骤:

    需要额外一个数组,存储每一块的开头元素的下标。

专题之查找

上一篇:Optional和ifPresent进行判空处理


下一篇:jmeter系列(3)-属性