【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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LoadRunner学习:RuntimeSetting、参数化、关联、(unfinished

LoadRunner RuntimeSetting 运行时设置 在Vuser中设置Run-time Settings RunLogic:运行逻辑,决定了脚本真正执行逻辑, Init和End部分代码只能执行一次。决定脚本真正执行逻辑的意思是,在Run中的代码和Number of Iteration决定了…

马斯克放出豪言,他旗下的xAI要把Grok开源了

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

WeiPHP5.0远程代码执行漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复建议 前言 weiphp 是一个开源,高效,简洁的微信开发平台 声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后…

Learn OpenGL 08 颜色+基础光照+材质+光照贴图

我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。物体的颜色为物体从一个光源反射各个颜色分量的大小。 创建光照场景 首先需要创建一个光源,因为我们以及有一个立方体数据,我们只需要进行…

04.JavaScript中的封装和函数

函数 理解函数的封装特性,掌握函数的语法规则 声明和调用 函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用。 声明(定义) 声明&a…

白嫖的学习资源,程序员绝对相见恨晚!

麦瑟尔夫说:厌学是心灵的癌症。 不学而原地踏步则会让你变成大笨蛋,甚至脑子瓦特......(好吧,可以喷了,其实我在危言耸听) 但是!排除鸡汤的洗脑,学习的重要性是不可否认的&#xff…

初学者必会的Python3文件操作

文件操作的步骤: 打开文件 -> 操作文件 -> 关闭文件 切记:最后要关闭文件。 打开文件 文件句柄 open(文件路径, 模式) 指定文件编码 文件句柄 open(文件路径,模式,encodingutf-8) 为了防止忘记关闭文件,可以使用上下文管理器来…

大模型的整体性

大模型在人工智能领域,体现出一种高度的整体性特征。大模型的整体性表现在其能够跨越多种数据模态,统一表示,应用广泛的知识,以统一的方式处理复杂信息,并在多种场景下保持一致和有效的性能。这种整体性可以分为外部和…

PNG图片合成,带手机外观设置,可自定义金额等

PNG图片合成,带手机外观设置,可自定义金额等 软件界面成品显示免责声明 软件界面 成品显示 免责声明 若因使用代码与官方造成不必要的纠纷,本人盖不负责,存粹技术爱好,若侵犯贵公司的权益,请告知&#xff…

数据结构·二叉树(一)

1. 树概念及结构 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,树叶朝下的。 有一个特殊的节点,称为根节点&#…

Redis核心数据结构之压缩列表(二)

压缩列表 压缩列表节点的构成 encoding 节点的encoding属性记录了节点的content属性所保存数据的类型及长度: 1.一字节、两字节或者五字节长,值得最高位为00、01或者10的是字节数组编码:这种编码表示节点的content属性保存着字节数组,数组的长度由编…

【Python】random库

专栏文章索引:Python 原文章:Python中random函数用法整理_python random-CSDN博客 目录 1.random.random() 2.random.uniform(a, b) 3.random.randint(a, b) 4.random.randrange([start], stop[, step]) 5. random.choice() 6. random.shuffle(x[,…

【每日八股】Java基础中面试你必须要掌握问题1

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。## 如何解决浮点数运算的精度丢失问题? BigDecimal 可以解决精度问题的原因在于它是一个精确的十进制数学运算类&…

idea中设置字段唯一,后台做出提示(springboot项目)

在项目中,我们通常需要对某些字段做字段唯一的限制,保证在数据库中该字段对应的值不能出现重复的值,接下来看看怎么做吧~ 数据库中可以同时设置几个字段的unique,就比如用户在进行注册的时候,一个用户只能对应一个电话…

爬虫入门到精通_框架篇14(PySpider架构概述及用法详解)

官方文档 Sample Code: from pyspider.libs.base_handler import *class Handler(BaseHandler):crawl_config {}# minutes24 * 60:每隔一天重新爬取every(minutes24 * 60)def on_start(self):self.crawl(http://scrapy.org/, callbackself.index_page)…

week07day01(powerbi)

一. Power BI简介 1. 构成部分 power query: 进行简单的数据清洗power pivot : 进行指标计算power view : 进行报表视图 二. Power Query (进行数据清洗) 1. 如何获取数据: 点击获取数据 ——> 选择导入数据的类型——> 会出现 "加载&…

【刷题日志3.4--3.10】

绕过flag关键字od读取&#xff08;脚本&#xff09;空格过滤 [广东强网杯 2021 团队组]love_Pokemon <?php error_reporting(0); highlight_file(__FILE__); $dir sandbox/ . md5($_SERVER[REMOTE_ADDR]) . /;if(!file_exists($dir)){mkdir($dir); }function DefenderBon…

Pytorch搭建AlexNet 预测实现

1.导包 import torch import matplotlib.pyplot as plt import json from model import AlexNet from PIL import Image from torchvision import transforms 2.数据预处理 data_transform transforms.Compose([transforms.Resize((224, 224)), # 将图片重新裁剪transform…

【Android】 ClassLoader 知识点提炼

1.Java中的 ClassLoader 1.1 、ClassLoader的类型 Java 中的类加载器主要有两种类型&#xff0c;即系统类加载器和自定义类加载器。其中系统类 加载器包括3种&#xff0c;分别是 Bootstrap ClassLoader、Extensions ClassLoader 和 Application ClassLoader。 1.1.1.Bootstra…

uniapp开发DAPP钱包应用(二) Vue + Java

上一节我们讲了如何通过vue uniapp还有web3以及需要准备的相关组件&#xff0c;来搭建了DAPP开发的环境。 这一节&#xff0c;我们来说说如何用代码来实现DAPP相关接口。 1. ethers实现类 导入组件 import { ethers , providers , utils } from "ethers"; impor…