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

数据结构——(一)绪论


👉数据元素整体思维导图 欢迎补充

一、基本概念❤️

1.1基本术语⭐️

(1)数据
客观事务属性的数字、字符。

(2)数据元素
数据元素是数据的基本单位,一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分的最小单元。
下面我们举一个例子来说明一下,下面就是一个学生表

学号姓名
0711小唐

如图所示,其中的学生表就是我们的数据元素,然后学号姓名分别对应的就是我们的数据项。

(3)数据对象
数据对象,也就是我们相同数据元素的集合,例如下面这个学生表

学号姓名
0711小唐
0403小宋
0219小黄

如图所示,这样多条记录的合集就是我们数据对象啦

(4)数据类型

1)原子类型:其值不可再分数据类型
在这里插入图片描述

2)结构类型:其值可以再分的数据类型
在这里插入图片描述
列如上面面这个结构体,还可以分为 int和string

3)抽象数据类型:抽象数据组织及其相关操作 这个你就可以理解为刚刚学生表+学生表对于的操作(增删改查)


1.2数据结构三要素⭐️⭐️⭐️

数据结构是相互之间,一种或者多种,特定关系的元素集合,数据元素之间的相互关系,我们称只为结构,数据元素主要分为以下三要素

1.逻辑结构
在这里插入图片描述

2.物理(存储)结构

顺序结构:相邻的元素存储在物理结构上的位置也相邻,只能使用相邻的一整块存储结构,可能会有较多的外部碎片。使用数组来存,就是一个非常明显的顺序结构。

链式结构:逻辑相邻,但是我们的物理结构的位置可以不相邻,因为借助指针,所以会占有额外的存储空间,读取元素时,也只能进行顺序读取。

索引结构:外部建立索引表,通过索引表读取,每一项被称之为索引项【index:key】,比如省会的索引【湖南:长沙】

散列结构:根据元素的关键字来计算出元素的存储位置,又称Hash存储,在后续散链表的学习中,index=元素%key,我们会进行进一步讲解

tips:说到这里,部分读者逻辑和物理结构有点区分不了,我们可以这样来理解,比如在树形结构中,我可以既可以采取顺序存储,也可以采取链式存储的方式,逻辑结构独立于我们的存储结构,我们后续章节,也基本由顺序存储讲到链式存储

3.数据的运算
对于我们数据结构的操作:运算的定义正对于逻辑结构,实现针对于物理结构

二、算法及其评价❤️

2.1主要特性⭐️

1.输入:有0个或者多个输入
2.输出:有1个或者多个输出
3.可行性:所描述操作可以通过已经实现的基本运算执行有限次操作来实现
4.正确性:相同输入得到相同输出
5.有穷性:算法不是死循环

2.2算法评价⭐️

1.可读性:可以让接触到的人便于理解
2.正确性:算法可以正确的解决问题
3.健壮性:对于非法的数据可以自己进行处理
4.高效率和低容量需求:效率高,存储空间小

2.3 时间复杂度⭐️⭐️⭐️

给大家推荐这个视频,讲的很清楚
单层基本思路
1.写出每一趟的躺数t
2.写出每一次躺数t,里面元素的变化
3.求元素和躺数的关系
4.找到元素的终止条件
5.求解

多层基本思路
1.从i开始一直到循环结束
2.写出每一个i中经理多少次循环
3.求和

数据结构——时间复杂度计算

2.4 空间复杂度⭐️

依据算法规模来进行求解,S(n)=O(g(n)),一般来说所使用的辅助空间都是常量,这里的空间复杂度会在学邻接矩阵的时候有一个比较详细的了解

相关文章:

数据结构——(一)绪论

👉数据元素整体思维导图 欢迎补充 一、基本概念❤️ 1.1基本术语⭐️ (1)数据 客观事务属性的数字、字符。 (2)数据元素 数据元素是数据的基本单位,一个数据元素可由若干数据项组成,数据项是…...

[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择

前几天看到一个问答帖,我回答完了才发现这个帖子居然是去年的也没人回复,其中他问了一些华为云的问题,对于其中的一些概念,这里来总结讲解一下,希望对学习华为云的小伙伴有所帮助。 文章目录 区域(Region&a…...

表单验证:输入的字符串以回车分隔并验证是否有

公司项目开发时&#xff0c;有一个需求&#xff0c;需要对输入的字符串按回车分隔并验证是否有重复项&#xff0c;效果如下&#xff1a; 表单代码&#xff1a; <el-form-item label"IP地址条目&#xff1a;" prop"ipAddressEntry"><el-inputtype&…...

智能财务分析-亿发财务报表管理系统,赋能中小企业财务数字化转型

对于许多中小企业来说&#xff0c;企业重要部门往往是财务和业务部门。业务负责创收&#xff0c;财务负责控制成本&#xff0c;降低税收风险。但因管理机制和公司运行制度的原因&#xff0c;中小企业往往面临着业务与财务割裂的问题&#xff0c;财务数据不清晰&#xff0c;无法…...

图为科技T501赋能工业机器人 革新传统工业流程

工业机器人已成为一个国家制造技术与科技水平的重要衡量标准&#xff0c;在2019年&#xff0c;中国工业机器人的组装量与产量均位居了全球首位。 当前&#xff0c;工业机器人被广泛用于电子、物流、化工等多个领域之中&#xff0c;是一种通过电子科技和机械关节制作出来的智能机…...

安全狗深度参与编写的《云原生安全配置基线规范》正式发布!

7月25日&#xff0c;由中国信息通信研究院、中国通信标准化协会主办的2023可信云大会在北京顺利开幕。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2013年&#xff0c…...

如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后&#xff0c;二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外&#xff0c;将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…...

Vue中TodoList案例_编辑

nextTick: MyItem.vue 加一个编辑按钮&#xff0c;input框&#xff1a;blur失去焦点时触发事件handleBlur&#xff0c;ref获取真实dom&#xff1a; <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…...

什么是Redis?

什么是Redis 什么是Redis一、特性1. 支持多种数据结构2. 读/写速度快&#xff0c;性能高。3. 支持持久化。4. 实现高可用主从复制&#xff0c;主节点做数据副本。5. 实现分布式集群和高可用。 二、基本数据类型string&#xff08;字符串&#xff09;list(双向链表)set(集合)zse…...

深入浅出理解vue2/vue3响应式原理

一、简介 当谈论Vue 2和Vue 3的响应式原理时&#xff0c;我们主要关注的是其数据双向绑定的机制。数据双向绑定是指当数据发生变化时&#xff0c;视图会自动更新&#xff1b;反之&#xff0c;当视图发生变化时&#xff0c;数据也会相应地更新。这种特性让我们在前端开发中更加…...

ssh连接服务器配置

平常每次都是 ssh root111.111.111.111 然后再输入密码 很事麻烦 总结 首先本地生成密钥和公钥 ssh-keygen -t rsa -C "XXX" ~/.ssh id_rsa.pub 将公钥加入远程服务器中的authorized_keys中 用户可以手动编辑该文件&#xff0c;把公钥粘贴进去&#xff0c;也可…...

el-table 表头设置渐变色

<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…...

GB/T 25000.51解读——软件产品的易用性怎么测?

GB/T 25000.51-2016《软件产品质量要求和测试细则》是申请软件检测CNAS认可一定会用到的一部国家标准。在前面的文章中&#xff0c;我们为大家整体介绍了GB/T 25000.51-2016《软件产品质量要求和测试细则》国家标准的结构和所涵盖的内容以及对软件产品的八大质量特性中的功能性…...

408复试day2(7大排序算法)

数据结构 7大排序算法总结&#xff1a; 首先排序分为内排序和外排序&#xff1a; 内排序是指待排序的记录放置在内存&#xff0c;而外排序是指排序的过程中需要对内存进行访问。其中稳定的排序有“插冒归”&#xff0c;即插入排序、冒泡排序、归并排序。 1.冒泡排序 算法原理&a…...

Vue消息订阅与发布

引入第三方库pubsub.js: npm i pubsub-js Student.vue import pubsub from pubsub-jsmethods:{sendStudentName(){// this.$bus.$emit(hello,this.name)pubsub.publish(hello,666)}}, School.vue import pubsub from pubsub-jsmounted() {// console.log("school&quo…...

MySQL学习笔记 ------ 分组查询

#进阶5&#xff1a;分组查询 /* 语法&#xff1a; select 分组函数&#xff0c;列&#xff08;要求出现在group by的后面&#xff09; from 表 【where 筛选条件】 group by 分组的列表 【order by 排序的字段】; 注意&#xff1a;查询列表必须特殊&#xff0c;要求是分组函…...

Matlab 点云平面特征提取

文章目录 一、简介二、实现代码2.1基于k个邻近点2.2基于邻近半径参考资料一、简介 点云中存在这各种各样的几何特征,这里基于每个点的邻域协方差来获取该点的所具有的基础几何特征(如下图所示),这样的做法虽然不能很好的提取出点云中的各个部分,但却是可以作为一种数据预处…...

vite的介绍

Vite&#xff08;法语意为 "快速的"&#xff0c;发音 /vit/&#xff0c;发音同 "veet")是一种新型前端构建工具 优势 &#x1f4a1; 极速的服务启动&#xff0c;使用原生 ESM 文件&#xff0c;无需打包 ⚡️ 轻量快速的热重载&#xff0c;始终极快的模块…...

裁员 10%,暴跌 14%,这家 IT 独角兽正在被抛弃!

流量一跌再跌&#xff0c;Stack Overflow 简直被狠狠地上了一课&#xff01; 3 月份 Stack Overflow 的流量下降了近 14%。该公司的 CEO 压力空前&#xff0c;甚至昨天决定裁员 10%&#xff01; 平均每月下降6%&#xff0c;上月直接跌了近14% 开发人员越来越多地从 AI 聊天机器…...

电脑记事本在哪里?电脑桌面显示记事本要怎么设置?

绝大多数上班族在使用电脑办公时&#xff0c;都需要随手记录一些琐碎或重要的事情&#xff0c;例如工作注意事项、常用的文案、某项工作的具体要求、多个平台的账号和密码等。于是就有不少小伙伴想要使用电脑记事本软件来记录&#xff0c;那么电脑记事本在哪里呢&#xff1f;想…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...