软考27-上午题-查找

一、基本概念

1-1、查找表:

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

对查找表常用的操作:

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

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

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

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

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

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

 

1-2、关键字:

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

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

1-3、平均查找长度:

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

 

二、静态查找

2-1、顺序查找

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

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

不需要有序!!!

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

2-2、折半查找

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

示例:查找元素16

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

 

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

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

 

2-3、折半查找判定树

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

示例:

 

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

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

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

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

 

 

2-4、真题

真题1:

真题2:

真题3:

真题4:

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

真题5:

真题6:

 真题7:

 

真题8:

 真题9:

真题10:

 真题11:

真题12:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/469396.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试前的准备

面试前的准备 Java程序员校招与社招的区别 校招和社招都是企业招聘形式的一种,只是面向的对象不同。校招 只允许在校生参加,社招理论上是任何人都能参加的(包括在校生)。 但是,无论是社招还是校招,它的难度都取决于你的水平高低。…

关于Windows Media Player的一些知识,看这篇文章就差不多了

你知道如何在电脑上打开Windows Media Player吗?如果它不是你电脑上默认的媒体播放器,你知道如何将其设为默认吗?此外,如果你找不到它,你知道怎么把它找回来吗?这篇文章将向你展示你想要了解的所有信息。 在这篇文章中,我们将向你展示以下信息: 如何打开Windows Medi…

python从入门到精通(十):python常见标准库的使用

python数据分析和可视化基础 (一)Python 中处理日期和时间的模块time导入time模块time获取当前时间戳localtime获取当前时间struct_timeasctime获取格式化的时间ctime获取格式化的时间gmtime获取格式化的时间计时器功能strftime格式化日期strptime格式化…

Spring 用法学习总结(一)之基于 XML 注入属性

百度网盘: 👉 Spring学习书籍链接 Spring学习 1 Spring框架概述2 Spring容器3 基于XML方式创建对象4 基于XML方式注入属性4.1 通过set方法注入属性4.2 通过构造器注入属性4.3 使用p命名空间注入属性4.4 注入bean与自动装配4.5 注入集合4.6 注入外部属性…

【前端web入门第六天】02 flex布局

文章目录 Flex布局1.Flex组成2.主轴与侧轴对齐方式2.1 主轴对齐方式(横轴)2.2 侧轴对齐方式 (纵轴)2.3 修改主轴方向 3.弹性伸缩比4.弹性换行与行对齐方式4.1 弹性换行4.2 行对齐方式 Flex布局 1.Flex组成 设置方式:给父元素设置display: flex,子元素可以自动挤压…

Zabbix图形中文乱码问题(显示口口)解决办法

一 切换到zabbix安装目录assets/fonts下,下载字体 这里使用是nginxphp作为zabbix-web展示,使用find 命令查找 进入目录下,将原有字体备份,下载msyh字体 wget https://www.xxshell.com/download/sh/zabbix/ttf/msyh.ttf 二 修改配…

Android adb使用超级大全

Android adb使用超级大全 ADB,即Android Debug Bridge,是一款强大的工具,对于Android开发/测试人员来说是不可或缺的,同时也是Android设备玩家的好玩具。本文将详细介绍ADB的使用方法。 ADB的基本用法如下: 命令语法…

Web基础01-HTML+CSS

目录 一、HTML 1.概述 2.html结构解析 3.HTML标签分类 4.HTML标签关系 5.HTML空元素 6.HTML属性 7.常用标签 (1)HTML标签 (2)标题标签 (3)换/折行标签 (4)段落标签 &am…

【数据分享】2020~2050年青藏高原未来LAI变化情景数据集

各位同学们好,今天和大伙儿分享的是2020~2050年青藏高原未来LAI变化情景数据集。如果大家有下载处理数据等方面的问题,可以添加我的微信交流~ 贾坤, 赵琳琳, 夏沐. (2023). 青藏高原未来LAI变化情景数据集(2020-2050). 国家青藏高…

Hive的相关概念——分区表、分桶表

目录 一、Hive分区表 1.1 分区表的概念 1.2 分区表的创建 1.3 分区表数据加载及查询 1.3.1 静态分区 1.3.2 动态分区 1.4 分区表的本质及使用 1.5 分区表的注意事项 1.6 多重分区表 二、Hive分桶表 2.1 分桶表的概念 2.2 分桶表的创建 2.3 分桶表的数据加载 2.4 …

【python之美】减少人工成本之创建文件并写入数据_1

创建txt文件,干巴巴的特产 path "C:\\Users\\Administrator\\Desktop\\text\\" numb int(input("需要创建几个文件:")) a 1 for i in range(numb):f open(path text _ str(a) .txt, w)f.write(这是第 str(a) 文件)a 1print(创建 s…

Mac终端远程访问Linux

以ubuntu为例 一、查看ubuntu的ip地址 1、下载net-tools localhostubuntu-server:~$ sudo apt install net-tools 2、查看ip地址 localhostubuntu-server:~$ ifconfig ubuntu需要下载net-tools才能使用ifconfig localhostubuntu-server:~$ sudo apt install net-tools 二…