【DAY11 软考中级备考笔记】数据结构 查找和排序

数据结构 查找和排序 3月12日 – 天气:晴

1. 顺序查找

在这里插入图片描述

顺序查找就是简单的从头一个一个的进行比较,注意它的平均查找长度

2. 折半查找

在这里插入图片描述

折半查找和二叉排序树一致:

优点:查找效率很高

缺点:要求必须是循序存储并且表中元素必须有序

3. 分块查找

image-20240312204445143

分块查找实际上是结合了折半查找和顺序查找两种方式。

注意ASL的计算方式

优点:查找效率高于顺序查找,低于折半查找

4. 哈希表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用取余的方法,需要注意取余的值:

取余的那个值 大于等于元素个数,小于等于比当前个数大的第一个质数。假设元素个数为9,则m的取值范围为【9,11】

image-20240312205703780

image-20240312205738937

image-20240312205720498

image-20240312205751411

采用链地址法的优点和不足:

  • 优点:平均查找长度短
  • 缺点:需要存储大量的指针,导致空间的浪费

image-20240312205855799

5. 直接插入排序

image-20240312210000626

  • 思想:直接插入排序的思想是向序列分为有序序列和无序序列。每次都从无序序列中取出一个值,然后跟有序序列的值一次进行比较,找到和事的位置进行插入。

  • 确定性:因此插入排序中在未完成时,没有一个元素的值时确定的。

  • 稳定性:稳定的

  • 时间复杂度:最好的情况下,只需要比较n-1次,最坏的情况是n^2

  • 空间复杂度:1

6. 希尔排序

image-20240312210356091

image-20240312211410777

  • 思想:希尔排序是直接插入排序的改进。它首先将元素进行分组,在组内进行直接插入排序,随着增量的逐渐减小,最终使得整个序列都有序
  • 确定性:不确定
  • 稳定性:不稳定
  • 时间复杂度:n^1.3
  • 空间复杂度:1

希尔排序最后一次排序为直接插入排序

7. 冒泡排序

image-20240312211543453

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 思想:两两比较元素,将如果次序相反,则交换。这样每一轮排序都会选出最大的或者最小的元素,直到所有的元素都有序
  • 稳定性:稳定
  • 确定性:确定,每一次都会选择出最大的元素,且该元素的位置不会再次发生变化
  • 时间复杂度 n^2
  • 空间复杂度 1

8. 快速排序

image-20240312212009856

image-20240312212031166

  • 思想:在序列中任意选择一个元素,然后以这个元素为基准,将小于它的元素都放在它的左边,大于它的都放在右边。然后生成两个子序列。然后这两个子序列再一次执行上述操作。直到序列中只有一个元素
  • 稳定性:不稳定
  • 确定性:每次所选择的这个元素的位置是固定的
  • 时间复杂度:nlog
  • 空间复杂度:log (递归)

9. 简单选择排序

image-20240312212827496

image-20240312213156022

  • 思想:每次从带排序的序列中找到最小的元素,然后放在有序序列末尾。这里注意和直接插入排序区分。直接插入的思想是每一次都从未排序的序列中选择一个元素,然后放到已经排序序列里面的合适的位置
  • 稳定性:不稳定
  • 确定性:确定
  • 时间复杂度 n^2
  • 空间复杂度:1

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

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

相关文章

《计算机网络》考研:2024/3/11:2.1.6-习题精选(5、6题暂未完成)

2024/3/11 2.1.6 习题精选 一、单项选择题 我的答案:1.D 2.A 3.C 4.B 5.A 标准答案:1.D 2.A 3.B 4.B 5.A 3、【解】: 并行传输的特点:距离短、速度快。 串行传输的特点:距离长、速度慢。 在计算机内部通常为了保证速…

基于 Jenkins 搭建一套 CI/CD 系统

一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos…

搜索引擎SEO策略介绍

baidu搜索:如何联系八爪鱼SEO baidu搜索:如何联系八爪鱼SEO baidu搜索:如何联系八爪鱼SEO 第一、 关键词的选择策略: 1、门户类的网站关键词选择策略: 网站每个页面本身基本都包含有关键词:网站拥有上百…

Linux上部署zabbix 6.x

建议大家使用Rocky Linux 8.X https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.9-x86_64-minimal.iso 1> 配置安装yum源 [rootzabbix ~]# yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el8.noarc…

Centos7安装Clickhouse单节点部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

Go——下划线

"_"是特殊标识符,用来忽略结果。 1. 下划线在import中 在golang中,import的作用是导入其他package。 import下划线的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候…

FreeRTOS学习笔记-基于stm32(5)列表和列表项

一、列表与列表项简介 列表是FreeRTOS中的一种数据结构,类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。 二、列表 列表结构体: typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值c…

Elasticsearch基础操作

一、Restful接口 Elasticsearch通过RESTful接口提供与其进行交互的方式。在ES中,提供了功能丰富的RESTful API的操作,包括CRUD、创建索引、删除索引等操作。你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上,你甚至可以使用 curl …

k8s简单架构图

背景 k8s目前应用的很广泛,它其实也是采用分布式系统中最常见的一个master管理节点多个worker节点的方式构成的,本文就简单看下k8s的架构 k8s架构图 1.管理节点master,master节点主要有三个模块构成 1.1 APIServer模块:这个模块…

记录 Dubbo+Zookeeper 学习Demo

DubboZookeeper ZookeeperZookeeper 下载可能出现的问题 辅助程序下载dubbo-admin项目打包工程打包常见问题 SpringBoot集成Dubbo项目依赖定义服务接口服务端实现服务端配置依赖代码实现 消费端实现服务端配置依赖代码实现 启动 结合Dubbo官网学习如何完成SpringBootDubboZooke…

React 教程

学习主要来源 React 教程 | 菜鸟教程 React 是一个用于构建用户界面的 JAVASCRIPT 库。 React 主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站&#xff0…

学习笔记-华为IPD转型2020:2,IPD的核心思想

2,IPD的核心思想 以客户为导向:应该开发什么产品? 应该开发哪些产品?华为的“基本法”规定,其目的是为客户服务(Huawei,1998)。然而,在IPD实施后,对这种以客…

视频监控/云存储EasyCVR视频融合平台设备增删改操作不生效是什么原因?

国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流&#xf…

[linux] socket 非阻塞模式使用注意事项

在使用 socket 的一些 api 的时候,默认情况下都是阻塞模式。比如使用 tcp socket 时,客户端调用 connect() 创建连接,connect() 返回的时候要么是创建连接成功了,要么是出现了错误,反正 connect() 返回的时候结果是确定…

微信小程序开发系列(二十九)·界面交互API·loading 提示框、showModal模态对话框、showToast消息提示框

目录 1. loading 提示框 1. 1 wx.showLoading()显示loading提示框 1.2 wx.hideLoading()关闭 loading 提示框 2. showModal 模态对话框 3. showToast 消息提示框 小程序提供了一些用于界面交互的 API,例如:loading 提示框、消息提示框、模态对…

python学习1:csv模块、time模块、random、jieba、worldcloud、pycharm的虚拟环境认识、black格式化文件

标准库与第三方库 模块(modules):是包含python函数和变量的文件,名称符合Python标识符要求,并使用.py后缀 包(package):是包含其他模块、包的文件夹。名称符合Python标识符要求&am…

安装配置HBase

HBase集群需要整个集群所有节点安装的HBase版本保持一致,并且拥有相同的配置,具体配置步骤如下: 1. 解压缩HBase的压缩包 2. 配置HBase的环境变量 3. 修改HBase的配置文件,HBase的配置文件存放在HBase安装目录下的conf中 4. 首…

蓝桥杯每日一题 走迷宫bfs 超超详细解释!!!

昨天学习了bfs的基本概念&#xff0c;今天来做一道经典习题练练手吧&#xff01; bfs常用的两类题型 1.从A出发是否存在到达B的路径(dfs也可) 2.从A出发到B的最短路径&#xff08;数小:<20才能用dfs&#xff09; 遗留的那个问题的答案- 题目&#xff1a;走迷宫 答案&…

Java爬虫-获取数据的方式之一

目录 一、jsoup的使用 1.概述 2.主要功能 3.快速入门 4.数据准备 二、Selenium 1.概述 2.使用 三、Selenium配合jsoup获取数据 四、爬虫准则 五、Seleniumjsoupmybatis实现数据保存 1.筛选需要的数据 2.创建一个表&#xff0c;准备存储数据 手写&#xff1f;不存在…

基于STM32的电动车防盗器设计

1.项目需求 点击遥控器 A 按键&#xff0c;系统进入警戒模式&#xff0c;一旦检测到震动&#xff08;小偷偷车&#xff09;&#xff0c;则喇叭发出声响报警&#xff0c; 吓退小偷。 点击遥控器 B 按键&#xff0c;系统退出警戒模式&#xff0c;再怎么摇晃系统都不会报警&#…