软考27-上午题-查找

一、基本概念

1-1、查找表:

同一类型的数据元素构成的集合。

对查找表常用的操作:

  1. 查找表中查询某个特定的元素
  2. 检索某个特定的元素的各种属性

通常只进行这两种操作的查找表:静态查找表

1-1-2、静态查找表:

  • 顺序查找——考的少
  • 折半查找(二分查找)——考的多
  • 分块查找——没考过
  1. 在查找表中插入一个数据元素;
  2. 在查找表中删除一个数据元素;

1-1-3、动态查找表:

  • 二叉排序树
  • 平衡二叉树
  • B_树——考的少
  • 哈希表

1-2、关键字:

数据元素的某个数据项的值;

  1. 主关键字:唯一标识一个数据元素的关键字
  2. 次关键字:能够标识多个数据元素的关键字。

1-3、平均查找长度:

衡量查找算法好坏的依据:其关键字和给定值进行过比较的记录个数的期望值,即,平均查找长度。

软考27-上午题-查找_第1张图片

二、静态查找

2-1、顺序查找

顺序查找(又称线性查找)是一种简单的查找算法,它按照数据元素的顺序从前往后依次查找目标元素。

顺序存储方式、链式存储方式的查找表,顺序查找都可以。

不需要有序!!!

顺序查找成功的平均查找长度: 

软考27-上午题-查找_第2张图片

2-2、折半查找

基本思想:将有序数组分成两个部分,找到中间元素,与要查找的关键字进行比较,如果相等,则查找成功;如果要查找的关键字比中间元素小,则在左半部分继续查找;如果要查找的关键字比中间元素大,则在右半部分继续查找。通过不断的缩小查找范围,最终可以找到要查找的元素。

示例:查找元素16

软考27-上午题-查找_第3张图片

mid = (l+r)/ 2,往下取整。 

软考27-上午题-查找_第4张图片

查找失败的情况:low在hight的后面。

软考27-上午题-查找_第5张图片

折半查找的要求:

1、折半查找只适合:顺序存储!!!

2、折半查找需要关键字有序排列。

2-3、折半查找判定树

将折半查找的过程用一颗二叉树描述,当前查找区间的中间位置序号作为根。

示例:

软考27-上午题-查找_第6张图片

软考27-上午题-查找_第7张图片

查找成功时,折半查找的过程恰好走了一条从根结点到被查找结点的路径;

与关键字进行比较的次数 = 被查找结点在树中的层数。

因此,折半查找在查找成功时进行比较的关键字个数最多不超过树的深度,而具有 n 个结点的判定树的深度为,所以折半查找在查找成功时和给定值进行比较的关键字个数最多为。 

折半查找的平均查找长度:

2-4、真题

真题1:

软考27-上午题-查找_第8张图片

真题2:

软考27-上午题-查找_第9张图片

真题3:

软考27-上午题-查找_第10张图片

真题4:

软考27-上午题-查找_第11张图片

顺序查找,最多比较次数:n 

真题5:

软考27-上午题-查找_第12张图片

真题6:

软考27-上午题-查找_第13张图片 真题7:

软考27-上午题-查找_第14张图片

软考27-上午题-查找_第15张图片

真题8:

软考27-上午题-查找_第16张图片 真题9:

软考27-上午题-查找_第17张图片

真题10:

软考27-上午题-查找_第18张图片 真题11:

软考27-上午题-查找_第19张图片

真题12:

软考27-上午题-查找_第20张图片

你可能感兴趣的:(软考中级,学习,笔记)