静态查找表

只做查询的操作的查找表

动态查找表:

若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素

顺序查找:

从开头一个个比较,直到查找到关键字或者到达末尾

平均查找长度(ASL)=(n+1)/2

int search(int a[] , int n , int key){for(int i = 0 ; i < n ; i++){if(a[i] == key)return i;}return -1;
}

折半查找:

顺序查找的查找过程如下:

(1) 确定待查记录所在的范围,设区间范围为[low,high];

(2) 求出处于该区间中间位置的值mid,mid = [low+high]/2;

(3) 将给定的key值与有序表中第mid个记录的关键字item[mid].key相比较

(3.1) 若key == item[mid].key,则查找成功

(3.2) 若key < item[mid].key,则high = mid-1,并判断high是否小于low,若high<low,则查找不成功,否则,待查记录还是可能在新的区间[low,high]中,继续执行步骤(2)

(3.3) 若key > item[mid].key,则low = mid + 1,判断high是否小于low,若high<low,则查找不成功,否则,待查记录还是可能在新的区间[low,high]中,继续执行步骤(2)。

优点:查找效率比顺序查找的高

缺点:只能适用于有序表,且顺序存储结构,不能用于线性链表

平均查找长度(ASL)= log2(n+1) - 1

int search(int a[] , int n , int key){int low = 0;int high = n -1;int mid;while(low <= high){mid = (low + high)/2;if(a[mid] == key)return mid;else if(a[mid] > key)high = mid - 1;else low = mid + 1;}return -1;
}

索引顺序查找:

转载于:https://www.cnblogs.com/xiaogua918/p/4181552.html

顺序查找、折半查找及索引顺序查找相关推荐

  1. 对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗...

    原文:对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗 本文之外可参考另外一篇文章作为补充:http://www.cnblogs.com/wy123/p/6 ...

  2. php分块查找,索引查找(索引查找、分块查找) C语言实现

    1.基本概念 索引查找又称分级查找. 索引存储的基本思想是:首先把一个集合或线性表(他们对应为主表)按照一定的函数关系或条件划分成若干个逻辑上的子表,为每个子表分别建立一个索引项,由所有 这些索引项构 ...

  3. 【数据结构-查找】1.通俗易懂讲解 —— 顺序-折半-分块查找

    平均查找长度是所有查找过程中进行关键字的比较次数的平均值 失败的平均查找长度:图画出来,补充为二叉树,其中补上的层数之和是分子,列表长度 len+1 是分母 顺序查找 顺序查找主要是用于线性表中的查找 ...

  4. 顺序表查找+折半查找(二级)

    我们讲了各种数据 结构之后,比如讲了线性表了,讲了栈和队列,讲了树和二叉树,讲了图之后呢,我们最后还有两个专题,一个叫查找,一个叫排序,我们先看看查找,查找包括哪些内容啊,第一个线性表的查找,数组或者 ...

  5. 有序表的索引顺序结构查找次数分析

    有序表的索引顺序结构查找次数分析 @(算法学习) 为了提高查找效率,对65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,平均需要执行(B)次关键字比较. A. 10 B. ...

  6. 索引顺序查找(分块查找)

    索引顺序查找又叫分块查找,它是介于顺序查找和折半查找之间的一种查找方法.折半查找虽然具有很好的性能,但其前提条件是线性表顺序存储而且按照关键字排序,这一前提条件在结点数很大且表元素动态变化时难以满足. ...

  7. 查找——索引顺序表和倒排表

    查找 8.3 索引顺序表和倒排表 8.3.1 索引顺序表 (1)完全索引 (2)二级索引 结论 8.3.2 倒排表 (1)链式倒排索引表 (2)单元倒排索引表 特点 8.3 索引顺序表和倒排表 当数据 ...

  8. 索引顺序表(分块)查找分析

    索引顺序表(分块)查找 一.分块查找表存储结构 1."分块有序"的线性表 2.索引表 二.分块查找的基本思想 三.分块查找示例 四.算法分析--平均查找长度ASL 索引顺序查找又称 ...

  9. 顺序查找 折半查找 二叉排序树

    1.顺序查找,折半查找,二叉排序树操作定义 SeqSearch.h #include<stdio.h> #define ARRAYLEN 8int source[]={69, 65, 90 ...

最新文章

  1. Github连击200天(1)——ShowCase
  2. SpringBoot - 优雅的实现【应用启动参数校验】
  3. java list负载_java集合的扩容和负载因子的总结
  4. 浅谈分布式存储中的网络通信
  5. Java安装以及环境配置
  6. XJad(Java反编译工具)v2.2绿色版
  7. android自定义壁纸制作,如何为Android制作自己的自定义壁纸 | MOS86
  8. 电脑键盘各按键的作用及常用的快捷键总结
  9. 居民身份证号码每个数字代表什么
  10. 谷歌地图 经纬加密_Google开始加密搜索
  11. Cloudera Manager server服务器系统损坏后恢复
  12. 北京理工大学计算机实验广域网通信与有,北京理工大学计算机实验七报告表.doc...
  13. 破解神器面世!iPhone用户怎么办?
  14. 面试:GET 请求能上传图片吗,已解决
  15. 植物识别小系统:“ 花草树木 皆有名“一热爱自然,从认识自然开始 ~
  16. 深度学习笔记----计算机视觉的任务及对应的网络模型
  17. 2021美赛写作(一)
  18. node.js + express + mysql 简单运用
  19. Python 爬虫 之 爬取古代的诗歌,并保存本地(这里以爬取李白的所有诗歌为例)(以备作为AI写诗的训练数据)
  20. sed 注释行的 方法

热门文章

  1. python函数返回值的应用
  2. Python中的运算符与表达式
  3. 如何判定括号是否匹配
  4. jbig java_jbig2 Java Develop 238万源代码下载- www.pudn.com
  5. 根号x_【深情攻X自卑受】糖与盐by根号三
  6. 实用typescript_从今天开始,拿起 TypeScript 做一个轮子的制造者
  7. 基于阿尔法贝塔剪枝算法的五子棋_C4.5算法剪枝2
  8. poj 1160 Post Office(DP简单题)
  9. Tomcat中文乱码解决办法
  10. 从Java到C++——常量的使用规则