当前位置: 首页 > article >正文

数据结构知识点汇总

1、在数据结构中,随机访问是指能够直接访问任一元素,而不需要从特定的起始位置开始,也不需要按顺序访问其他元素。这种访问方式通常不涉及遍历。例如,数组(array)支持随机访问,你可以直接通过索引访问任意元素,而无需从第一个元素开始一步步遍历。

2、对于链式存储的理解:可以把每个节点理解为仅存储两个元素的数组,第一个元素是这个节点存储的数据,第二个节点存储的是下一个节点的数组名,也就是下一个节点的首地址(假设这个数组可以存储不同的数据类型)。

3、链式存储无法进行随机访问的原因就是,每一个节点在计算机内存中的位置信息都保留在前驱节点中,而前驱节点的位置信息又保存在前驱节点的前驱节点中,就这样连锁反应到首个节点,所以若要进行访问只能从第一个节点进行遍历。

4、算法可以没有输入,但至少有一个输出,用时间复杂度和空间复杂度来衡量一个算法的效率。

5、时间复杂度里的O()是指同阶的意思。

6、时间复杂度就是在当问题规模n趋近于无穷大时,谁是高阶无穷大。

7、高阶无穷大的比较参考为:常对幂指阶
在这里插入图片描述
在这里插入图片描述
时间复杂度的最终结果会省略低阶项和高阶项的系数,所以最终的结果一定是以上高阶无穷大序列中的某一个。且由于以上的函数单调递增、无交点,所以当n趋近于0时,他们的高阶无穷小顺序是反过来的。

8、由于在计算时间复杂度时,是将n处于趋近于无穷大的情况下进行计算,所以算法中的会执行但与n无关的代码步骤会被视作常数而被忽略掉。且由于最终的结果会忽略低阶项,所以都是直接研究最深层的循环的循环次数,一般循环次数都是关于n的一元函数。

9、在某些情况下,计算最深循环次数的条件并不确定,需要讨论最好和最坏情况,则需要计算平均循环次数,从而得到一个代表平均次数的n的一元函数。实际使用的都是平均时间复杂度和最坏时间复杂度,最好时间复杂度不会使用。

10、空间复杂度的变化一般都是由n引起的变量大小的改变,例如n决定了数组的大小和结构体大小;或则n决定了函数的嵌套次数,例如递归函数的递归次数。

11、空间复杂度就是根据n所决定的空间大小的高阶无穷大。

12、时间复杂度和空间复杂度的计算就是去找n的一元函数。

13、数据元素和数据项可以分别理解为一个账户和这个账户的具体信息,在实际的代码中可理解为结构体和成员变量。

14、数据结构就是存在特定关系的数据元素的集合,这个概念包含了数据元素以及它们之间的关系,在具体的数据结构中,每个节点的数据域就是数据元素。

15、数据对象就是具有相同性质的数据元素的集合,可理解为由同一个结构体或者类产生的实例对象集合。数据对象这个概念不包含数据元素之间的关系,所以这个概念仅指一个数据元素集合,数据元素之间可以不存在关系。

16、逻辑结构使用不同的存储结构会影响存储空间分配的方便程度、影响对数据运算的速度。

17、数据的运算是通过算法来实现的。

18、抽象数据类型ADT就是逻辑结构和数据的运算这两点的总和,一般都是先定义ADT,也就是逻辑结构和在此之上的运算,再使用具体的存储结构去实现他。

相关文章:

数据结构知识点汇总

1、在数据结构中,随机访问是指能够直接访问任一元素,而不需要从特定的起始位置开始,也不需要按顺序访问其他元素。这种访问方式通常不涉及遍历。例如,数组(array)支持随机访问,你可以直接通过索…...

雅思英语考试基本介绍

考试分类 雅思(国际英语语言测试系统,International English Language Testing System 即IELTS)主要分为两大类: 学术类(A类) 这是我可能会选择的一种(✓),专为申请大学…...

基于YOLO11深度学习的变压器漏油检测系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】

文章目录 引言软件主界面源码目录文件说明一、环境安装(1)安装python(2)安装软件所需的依赖库 二、软件核心功能介绍及效果演示(1)软件核心功能(2)软件效果演示 三、模型的训练、评估与推理(1)数据集准备与训练(2)训练结果评估(3)使用训练好的模型识别 四、完整相关文件及源码下…...

线上 Linux 环境 MySQL 磁盘 IO 高负载深度排查与性能优化实战

目录 一、线上告警 二、问题诊断 1. 系统层面排查 2. 数据库层面分析 三、参数调优 1. sync_binlog 参数优化 2. innodb_flush_log_at_trx_commit 参数调整 四、其他优化建议 1. 日志文件位置调整 2. 生产环境核心参数配置模板 3. 突发 IO 高负载应急响应方案 五、…...

【洛谷 P9025】 [CCC2021 S3] Lunch Concert 题解

题目: 洛谷 P9025 分析: 为了解决这个问题,我们需要找到一个整数位置 c 来举办音乐会,使得所有人移动到能听到音乐会的位置的时间总和最小。每个人移动后的位置应该在其听力范围内,并且尽可能靠近自己的初始位置以减少…...

Python 包管理工具核心指令uvx解析

uvx 是 Python 包管理工具 uv 的重要组成部分,主要用于在隔离环境中快速运行 Python 命令行工具或脚本,无需永久安装工具包。以下是其核心功能和使用场景的详细解析: 一、uvx 的定位与核心功能 工具执行器的角色 uvx 是 uv tool run 的别名&a…...

苍穹外卖05 Redis常用命令在Java中操作Redis_Spring Data Redis使用方式店铺营业状态设置

2-8 Redis常用命令 02 02-Redis入门 ctrlc :快捷结束进程 配置密码: 以后再启动客户端的时候就需要进行密码的配置了。使用-a 在图形化界面中创建链接: 启动成功了。 03 03-Redis常用数据类型 04 04-Redis常用命令_字符串操作命令 05 05-Redis常用命令…...

AI工程师系列——面向copilot编程

前言 ​ 笔者已经使用copilot协助开发有一段时间了,但一直没有总结一个协助代码开发的案例,特别是怎么问copilot,按照什么顺序问,哪些方面可以高效的生成需要的代码,这一次,笔者以IP解析需求为例,沉淀一个实践案例,供大家参考 当然,其实也不局限于copilot本身,类似…...

【竖排繁体识别】如何将竖排繁体图片文字识别转横排繁体,转横排简体导出文本文档,基于WPF和腾讯OCR的实现方案

一、应用场景 在古籍数字化、繁体文档处理、两岸三地文化交流等场景中,经常需要将竖排繁体文字转换为横排文字。例如: 古籍研究人员需要将竖排繁体文献转换为现代横排简体格式以便编辑和研究出版行业需要将繁体竖排排版转换为简体横排格式两岸三地交流中需要将繁体竖排文档转…...

梳理Spring Boot中三种异常处理

在 Spring Boot 中处理异常确实有多个方式,比如使用 ControllerAdvice、 BasicErrorController、HandlerExceptionResolver等。不同方式适合不同的场景,下面是对这些方式的分析以及如何选择的建议: 🧩 1. ControllerAdvice Exce…...

NFS服务器实验

实验要求 架设一台NFS服务器,并按照以下要求配置 1、开放/nfs/shared目录,供所有用户查询资料 2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210 3…...

ffmpeg 转换视频格式

使用FFmpeg将视频转换为MP4格式的常用命令: ffmpeg -i input.mov -c:v libx264 -crf 23 -c:a aac output.mp4 -i input.avi:指定输入文件 -c:v libx264:使用H.264视频编码器 -crf 23:控制视频质量(范围18-28&#…...

Java进阶之新特性

Java新特性 参考 官网:https://docs.oracle.com/en/ JDK5新特性 1.自动装箱与拆箱 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装类中。 自动拆箱的过程:每当需要一个值时&#xf…...

Python基础学习-Day32

面对一个全新的官方库,是否可以借助官方文档的写法了解其如何使用。 我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档。 大多数 Python 库都会有官方文档,里面包含了函数的详细说明、用法示例以及版本兼容性信息。 通常查询方式包含以下2种&…...

离线服务器算法部署环境配置

本文将详细记录我如何为一台全新的离线服务器配置必要的运行环境,包括基础编译工具、NVIDIA显卡驱动以及NVIDIA-Docker,以便顺利部署深度学习算法。 前提条件: 目标离线服务器已安装操作系统(本文以Ubuntu 18.04为例&#xff09…...

AIGC工具平台-卡通图片2D转绘3D

本模块是一款智能化的2D转3D图像处理工具,能够将卡通风格的2D图片自动转换为高质量3D渲染模型,让平面图像焕发立体生机。借助先进的AI深度学习算法,该工具可以精准识别角色轮廓、光影关系、材质纹理等关键元素,自动生成逼真的3D形…...

docker 启动一个python环境的项目dockerfile版本

文件格式 /home/py/docker/ # 项目根目录 ├── Dockerfile # Docker 构建文件 ├── requirements.txt # Python 依赖清单 └── src/ # 项目代码目录└── api_mock.py # Flask 应用入口文件Dockerfile # 使用…...

Java虚拟机 -方法调用

方法调用 方法调用静态链接动态链接案例虚方法与非虚方法虚方法(Virtual Method)非虚方法(Non-Virtual Method) 方法返回地址 方法调用 我们编写Java程序的时候,我们自己写的类通常不仅仅是调用自己本类的方法。调用别…...

基于matlabcd7.x的无网格近似方法

无网格近似方法(Meshless Methods)是一类数值计算方法,用于解决偏微分方程(PDEs)问题,特别是在几何形状复杂或需要动态网格更新的场景中。与传统的有限元方法(FEM)相比,无…...

JMeter JDBC请求Query Type实测(金仓数据库版)

文章目的 在实际性能测试中,JMeter的JDBC Request组件常用于模拟数据库操作。但许多用户对Query Type参数的具体行为存在疑惑。 本文将以金仓数据库KingbaseES为例,通过实测验证每种Query Type的行为,帮助用户明确其使用场景和限制&#xff…...

【内部教程】ISOLAR-AB配置以太网栈|超详细实战版

目录 往期推荐 缩写与定义 关于系统描述(System Description) 1.1 EthCommunicationController 1.2 EthCommunicationConnector 1.2.1 Ports(端口) 1.3 EthPhysicalChannel(以太网物理通道) 1.3.1…...

哈希表和容器中添加元素的方法

push_back v.s. emplace_back: 两者都是在容器末尾添加元素的方法&#xff0c;但是push_back会创建临时对象并进行拷贝构造&#xff0c;而emplace_back是直接构造 //push_back std::vector<MyClass> vec1; MyClass obj1("Object1", 1);//创建一个obj1对象 ve…...

Nginx 核心功能

目录 一&#xff1a;正向代理 1&#xff1a;编译安装 Nginx &#xff08;1&#xff09;安装支持软件 &#xff08;2&#xff09;创建运行用户、组和日志目录 &#xff08;3&#xff09;编译安装 Nginx &#xff08;4&#xff09;添加 Nginx 系统服务 2&#xff1a;配置正…...

String.join()-高效字符串拼接

String.join-高效字符串拼接 前言一、基础用法&#xff1a;拼接数组或集合元素&#xff08;仅分隔符&#xff09;语法示例 1&#xff1a;拼接字符串数组示例 2&#xff1a;拼接集合元素注意事项 二、进阶用法&#xff1a;结合 Stream API 处理复杂场景示例 1&#xff1a;添加前…...

【Canvas与图标】圆角方块蓝星CSS图标

【成图】 120*120的png图标 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>圆角方块蓝星CSS Draft1</…...

系统性能分析基本概念(5) : 何时开始性能分析

决定何时开始系统性能优化&#xff08;Performance Optimization&#xff09;需要根据系统状态、业务需求和资源可用性来判断。以下是触发性能优化的关键场景和时机&#xff0c;结合系统性能分析&#xff08;如DRAM读取吞吐量等&#xff09;的背景&#xff0c;保持简洁且实用&a…...

Python实现Web请求与响应

目录 一、Web 请求与响应基础 &#xff08;一&#xff09;Web 请求与响应的定义与组成 &#xff08;二&#xff09;HTTP 协议概述 &#xff08;三&#xff09;常见的 HTTP 状态码 二、Python 的 requests 库 &#xff08;一&#xff09;安装 requests 库 &#xff08;二…...

机器学习 day05

文章目录 前言一、模型选择与调优1.交叉验证2.超参数搜索 前言 通过今天的学习&#xff0c;我掌握了机器学习中模型的选择与调优&#xff0c;包括交叉验证&#xff0c;超参数搜索的概念与基本用法。 一、模型选择与调优 模型的选择与调优有许多方法&#xff0c;这里主要介绍较…...

CentOS Stream安装MinIO教程

1. 下载 MinIO 二进制文件 # 进入 MinIO 安装目录 sudo cd /usr/local/bin/# 下载 MinIO 二进制文件&#xff08;替换为最新版本链接&#xff09; wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio2. 创建专用用户和存储目录 # 创建 minio 用户…...

C#新建打开文件对话框

这是Winform直接封装好的打开文件对话框 using System.Windows.Forms; public static string OpenFile(string path) {OpenFileDialog openFileDialog new OpenFileDialog();// 设置对话框属性openFileDialog.Title "选择文件";openFileDialog.InitialDirectory …...