Day01 数据结构概述

news2024/12/23 20:40:20

目录

一、数据结构概述

1、基本概念

2、数据结构

3、逻辑关系(线性结构&非线性结构)

4、物理结构(存储结构)

5、算法

6、算法特征

二、时空复杂度

1、时间复杂度

2、空间复杂度

3、结构类型


一、数据结构概述

1、基本概念

  • 数据:能被计算机存储和识别的信息。文字、图形、视频、音频
  • 数据结构:计算机存储数据和组织数据的方式

2、数据结构

  • 数据的基本单位:数据元素(Data Elment)
  • 数据的最小单位:数据项
  1. 数据元素:由多个数据项组成。
  2. 数据对象(Data Object):多个数据元素的集合
  3. 数据结构:描述多个数据之间的逻辑结构和物理结构。
  • 逻辑结构:数据元素之间的逻辑关系
  • 物理结构(存储结构):计算机中存储数据的方式

3、逻辑关系(线性结构&非线性结构)

  • 集合 (无关系)
  • 线性结构(一对一)
  • 树状结构(一对多)
  • 图(多对多)

4、物理结构(存储结构)

  • 顺序存储结构
  • 链式存储结构

5、算法

        算法就是解决问题的步骤和方法。

6、算法特征

  1. 有穷性:程序执行必须在有限次数内完成,每一次必须在有限时间内执行完成
  2. 确定性:执行每一条语句都必须有准确的解释,不能出现二义性,意味着相同的输入就会有相同的输出
  3. 可行性:程序中每一条复杂语句都可分解为基本指令,并且每一条基本指令都必须在有限时间内完成
  4. 输入项:可以有一个或多个参数作为初始条件,然后对程序进行有效执行
  5. 输出项:可以有一个或多个输出

总结:程序=数据结构+算法

二、时空复杂度

1、时间复杂度

  1. 时间复杂度不是用算法的运行时间来衡量得
  2. 时间复杂度指的是算法程序语句的执行次数,也称为语句频度。一般采用O()表示时间复杂度,采用T()表示程序语句的执行次数。
T(n)=O(n)+n;

采用估算值作为时间复杂度,即影响最大的一项,舍弃系数

计算技巧: 只需要计算出算法的基本执行语句的最高次项,并舍弃最高次项系数,使用O(xx)表示 如果没有使用n来表示规模,则计算出的是一个常数项,则时间复杂度O(1)

做题技巧

  • 提到模块————耦合度
  • 提到算法————复杂度

2、空间复杂度

  • 程序在运行期间所占内存的空间大小叫做空间复杂度。
  • 一个好的算法通常是执行时间短,占用空间少,并且可读性好、容易维护,易于移植到其他平台。

3、结构类型

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

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

相关文章

【FPGA项目】bin文件ram存取回环测试

🎉欢迎来到FPGA专栏~bin文件ram存取回环测试 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大…

据说可以防静电和浪涌的P6KE30CA

公司有些变送器之前在最后一道校准时,经常发生烧毁的情况。所以在电路的防反接的M7二极管前面又增加了一个TVS二极管,型号P6KE30CA。但愿加了这个好使把。今天又研究了一下这个TVS管子,把搜索到的东西记录一下。放这里备忘把,忘记…

C语言| 把数组a赋给数组b

把数组a赋给数组b, 正确的写法是用for循环&#xff0c;将数组a中的元素一个一个赋给数组b的元素。 #include <stdio.h> int main(void) { int a[5] {11, 22, 33, 44, 55}; int b[5]; int i; for(i0; i<5; i) { b[i] a[i]; printf(…

Java开发工具的下载

Java开发工具的下载 IDEA概述 IDEA全称InteliJ IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最 好的工具。 集成环境 把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 让我…

证照之星是一款很受欢迎的证件照制作软件

证照之星是一款很受欢迎的证件照制作软件&#xff0c;证照之星可以为用户提供“照片旋转、裁切、调色、背景处理”等功能&#xff0c;满足用户对证件照制作的基本需求。本站证照之星下载专题为大家提供了证照之星电脑版、安卓版、个人免费版等多个版本客户端资源&#xff0c;此…

IEC61850 调试工具 工程师必备

文章目录 IEC61850 调试工具 工程师必备主要功能软件截图 IEC61850 调试工具 工程师必备 下载地址&#xff1a;http://www.redisant.cn/iec61850client IEC 61850 是国际电工委员会&#xff08;IEC&#xff09;制定的一项国际标准&#xff0c;主要用于电力系统自动化领域&…

后端跨域问题的处理

问题描述 在做前后端分离的项目时&#xff0c;很有可能会遇到这样一种情况&#xff1a; 就是在游览器中请求后端的接口&#xff0c;出现了 CORS error 错误 报错信息如下&#xff1a; Access to XMLHttpRequest at http://localhost:8860/user/auth/login from origin http:…

常见的 EVM 版本以及它们的区别

EVM&#xff08;以太坊虚拟机&#xff09;版本的演进是为了引入新的特性和改进以太坊平台的安全性、效率和功能性。每个版本通常伴随着以太坊网络的硬分叉&#xff0c;这是以太坊协议的重大升级。以下是一些常见的EVM版本及其主要区别&#xff1a; Homestead (2016年3月)&…

图像生成新篇章:Stable Diffusion 3 Medium开源评析

摘要 在数字艺术与人工智能的交汇点上&#xff0c;Stable Diffusion 3&#xff08;SD3&#xff09;的开源无疑是一场技术革新的盛宴。就在3月份&#xff0c;我撰写了一篇博文&#xff0c;深入探讨了SD3的技术报告内容与介绍&#xff0c;文章发表在CSDN博客上&#xff0c;https:…

同城如何异地共享文件?

在现代社会中&#xff0c;跨地区的合作变得越来越普遍&#xff0c;而这也带来了共享文件的需求。当我们身处不同的城市&#xff0c;如何高效地共享文件已经成为一项迫切的需求。本文将介绍一种名为“同城异地共享文件”的解决方案&#xff0c;帮助解决这一问题。 2. 天联组网—…

Day02 顺序表

目录 1、顺序表 2、随机访问&顺序访问 3、思考 4、顺序表的封装 1、顺序表 数组在数据结构中是属于线性表的一种&#xff0c;线性表是由一组具有n个相同类型的数据元素组成的。线性表中的任何一个数据元素 有且只有一个直接前驱有且只有一个直接后继首元素是没有前驱的…

学习Java中的Future类

学习Java中的Future类 Future接口在Java 5中引入&#xff0c;作为java.util.concurrent包的一部分。它代表一个异步计算的结果&#xff0c;当计算完成时可以通过Future对象获取结果。Future对象提供了一些方法来检查任务是否完成、等待任务完成并获取任务结果、取消任务等。 …

【python】tkinter编程三大布局管理器pack、grid、place应用实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

leetcode240 搜索二维矩阵II

题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18…

redis序列化

文章目录 1、为什么要进行序列化操作&#xff1f;2、序列化方式2.1、自定义序列化2. 2、StringRedisTemplate&#xff08;重点&#xff09; 1、为什么要进行序列化操作&#xff1f; 不进行序列化向redis存入数据代码&#xff1a; SpringBootTest class RedisDemoApplicationT…

渗透测试练习题解析 6 (CTF web)

1、[HCTF 2018]admin 1 考点&#xff1a;二次注入 先注册一个账号看看&#xff0c;注册 admin 会提示该用户名已存在&#xff0c;那我们就换一个用户名 观察页面功能&#xff0c;存在一个修改密码&#xff0c;开始的思路是想看看能否通过该密码功能抓包然后修改用户名为 admin …

RAG_Example

今天尝试基于langchain进行LLM RAG搭建&#xff0c;感觉使用难度没有想象中大。具体流程参考末尾链接。 主要流程包括下面几个模块&#xff0c;每一个模块都有很多选择&#xff0c;而不是唯一解。 但这里可以感受到潜在的几个问题 1. 文本转换过程中&#xff0c;PDF的信息可…

Android framework的Zygote源码分析

文章目录 Android framework的Zygote源码分析linux的fork Android framework的Zygote源码分析 init.rc 在Android系统中&#xff0c;zygote是一个native进程&#xff0c;是Android系统上所有应用进程的父进程&#xff0c;我们系统上app的进程都是由这个zygote分裂出来的。zyg…

极限网关助力好未来 Elasticsearch 容器化升级

极限网关在好未来的最佳实践案例&#xff0c;轻松扛住日增百 TB 数据的流量&#xff0c;助力 ES 从物理机到云原生架构的改造&#xff0c;实现了流控、请求分析、安全管理、无缝迁移等场景。一次完美的客户体验~ 背景 物理机架构时代 2022 年&#xff0c;好未来整个日志 Elas…

开源AGV调度系统OpenTCS中的路由器(router)详解

OpenTCS中的任务分派器router详解 1. 引言2. 路由器(router)2.1 代价计算函数&#xff08;Cost functions&#xff09;2.2 2.1 Routing groups2.1 默认的停车位置选择2.2 可选停车位置属性2.3 默认的充电位置选择2.4 即时运输订单分配 3. 默认任务分派器的配置项4. 参考资料与源…