嵌入式开发学习---(部分)数据结构(无代码)

数据结构

为什么学习数据结构?
1)c语言告诉如何写程序,数据结构是如何简洁高效的写程序
2)遇到一个实际问题,需要写程序去实现相应功能,需要解决那两个方面的问题?
如何表达数据之间的逻辑规律以及如何将数据存放到计算机中
数据结构:数据的逻辑结构存储结构及操作(数据的运算)
数据:不只是一个单纯的数值,而是类似于一个集合的概念
结构:数据之间的关系
采用什么方法解决问题
算法
数据结构加算法就是程序

数据结构是什么
数据的逻辑结构存储结构及操作(数据的运算)

数据

数据:不只是一个单纯的数值,而是类似于一个集合的概念
数据元素:是数据的基本单位,由若干个基本项组成
数据项:是数据的最小单位,描述数据元素的信息
节点:数据元素

逻辑结构

数据之间的逻辑规律和数据之间的关系
图片来源于网络,侵权立删
数据之间的关系
1)线性关系 ----->线性结构 ------->一对一------->线性表
2)层次关系------>树形结构--------->一对多--------->树
3)网状关系------->图状结构-------->多对多---------->图

存储结构

数据的逻辑结构在计算机中的具体实现

1)顺序存储结构
数组:在内存当中一段连续的内存空间中保存数据(如c语言中的一维数组)
2)链式存储结构
图片来源于网络,侵权立删
特点:数据在内存中是不连续的,通过指针进行连接
链表:

struct    node_t
{
	int  date;//数据域
	struct   node_t  * next;//指针域,指向自身结构体类型
}

3)索引存储结构
提高查找速度
索引表 + 数据文件
图片来源于网络,侵权立删

4)散列存储结构

数据在存储的时候与关键码之间存在某种对应关系
存的时候按照对应关系存
取的时候按照对应关系取

操作(运算)

增删改查

算法

解决问题的思想方法

程序

用计算机语言对算法的具体实现

算法与数据结构

  • 算法 + 数据结构 = 程序
    算法的设计:取决于选定的逻辑结构
    算法的实现:依赖于采用的存储结构(顺序、链式)

算法的特性

1)有穷性:算法的执行步骤是有限的
2)确定性:算法的每一步都是有明确含义的
3)可行性:算法能够在有限的时间内完成
4)输入
5)输出

如何评价一个算法的好坏?

正确性:保证算法可以正确完成功能
易读性:容易被解读
健壮性:容错处理
高效性:执行效率,算法执行快慢容易受到计算机性能的影响,不可以作为评判算法高效性的标准,这通过可执行语句重复执行次数来衡量算法是否高效 。(时间复杂度)
低存储性:占用空间小(空间复杂度)

时间复杂度

算法的可执行语句重复执行的次数
通常时间复杂度用一个问题规模函数来表达	
T(n) = O(f(n))
T(n)	//问题规模的时间函数
n		问题规模   
O		//时间数量级
f(n)	//算法的可执行语句重复执行的次数  用问题规模n的某个函数f(n)来表达

计算大O的方法

1)根据问题规模n写出表达式f(n)
2)只保留最高项,其他项舍去
3)如果最高想系数不为1,除以最高项系数
4)如果有常数项,将其置为1  // f(n)=8; O(1)

空间复杂度

算法占用的空间大小。一般将算法的辅助空间作为衡量空间复杂度的标准。
算法占用的存储空间包括:

1)输入输出数据所占空间
2)算法本身所占空间
3)额外需要的辅助空间

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

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

相关文章

20240327-PCL-1.41.0安装说明-VS2022-CMAKE篇

20240327-PCL-1.41.0安装说明-VS2022-CMAKE篇 一、软件环境 Win10 x64 22h2 Junecmake 3.29.1VSCODE v1.87.2GIT v2.29.2标签:win10 22h2 vscode cmake分栏:C 二、硬件环境 Win10 x64的PC台式机 三、下载最新版本PCL-1.41.0 方法一 https://githu…

上市公司股权性质演变:2000-2022年集中度数据深度剖析(5W+数据)

01、数据介绍 股权性质主要指的是股份公司中不同性质的股东即股权所有人的身份,以及他们各自持有的股份比例。在我国,股权性质通常涉及国家股东、法人股东(包括机构投资者)和流通股东等。 股权集中度则是反映公司股东对管理者的…

博客部署004-成功截图

1、前台client 2、后台管理admin 3、后端API

【Docker】搭建开源免费的书签管理系统 - OneNav

【Docker】搭建开源免费的书签管理系统 - OneNav 前言 本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。 简介 OneNav是一个基于PHP的轻量级网址导航系统,旨在帮助用户整理和访问他们的常用网站。 OneNav的主要特点如下: 美观易用&#x…

【Unity音游制作】音符和音符对象池的创建【二】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

【Spring进阶系列丨第七篇】Spring框架新注解分类及详解

文章目录 一、Spring新注解1.1、Configuration注解1.1.1、定义一个类1.1.2、使用Configuration注解修饰类1.1.3、作用 1.2、Bean注解1.2.1、定义bean1.2.2、在主配置类中注册bean1.2.3、测试容器中是否有该bean1.2.4、注册bean的同时可以指定bean名称1.2.5、补充内容1.2.5.1、案…

初始Java篇(JavaSE基础语法)(6)(继承和多态)(上)

Java学习篇 个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 继承篇 为什么需要继承? 继承概念 继承的语法 父类成员访问 super关键字 子类构造方法 super和this的比较 再谈…

柯桥外语机构商务英语学习,“五星级”酒店到底是five star还是five stars?这个千万别搞错!

“五星级酒店”的英语表达 关于酒店,大家都知道有星级之分;其中,最高级的酒店当属“五星级”了; 那么问题来了,这个“五星级”的英语,究竟是“five star”,还是“five stars”呢? 其…

11_Spring-IOC/DI

文章目录 SpringIOC控制反转(存)DI依赖注入(取)Spring的优点Spring的核心技术入门案例入门案例1入门案例2 注解配置类组件注册功能(IOC)类直接注册配置类中注册(JavaConfig) 组件注入…

Premiere Pro 2024:赋予创意翅膀,让你的视频飞翔 mac/win版

Premiere Pro 2024,作为Adobe旗下的旗舰视频编辑软件,自推出以来,一直在视频制作领域占据着重要的地位。随着技术的不断进步和创新,Premiere Pro 2024为用户带来了前所未有的编辑体验,重新定义了视频制作的标准。 Pre…

网络原理 - HTTP / HTTPS(5)——https协议

目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 (1)引入对称加密 对称密钥的特点: (2)引入非对称加密 非对称加密的特点: (3)中间人攻击…

【C++】STL--vector

目录 vector的使用 vector的定义 vector iterator的使用 vector空间增长问题 vector增删查改 vector深度剖析及模拟实现 vector核心接口模拟实现 使用memcpy拷贝问题 迭代器失效问题 vector的使用 vector的定义 C中,vector是一个模版,第一个参…

PHP数据类型

华子目录 数据类型PHP的八种数据类型基本数据类型,4类复合数据类型,2类特殊数据类型,2类 类型转换在PHP中有两种类型转换方式其他类型转bool类型其他类型转数值类型实例 类型判断获取和设定变量类型获取gettype(变量名)设置settype(变量名,类…

蓝桥杯单片机第十四届省赛模拟考试一

一、基本要求 使用大赛组委会提供的国信长天单片机竞赛实训平台,完成本试题的程序设计与调试。程序编写、调试完成后,选手需通过考试系统提交以准考证号命名的hex文件。不符合以上文件提交要求的作品将被评为零分或者被酌情扣分。 硬件设置: …

数组-二维数组

本笔记为47 数组-二维数组定义方式_哔哩哔哩_bilibili的学习笔记 二维数组 定义方式 注: 常用第二种方式定义,原因:第二种方式更清晰列数可以省行数不可省 ,详见上述第四种定义方式 示例: 二维数组 数组名 作用&am…

CSS层叠样式表学习(引入方式)

(大家好,今天我们将继续来学习CSS引入方式的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 五、CSS的三种样式表 5.1 CSS的三种样式表 按照CSS样式书写的位置(或者引入方式),CSS样式表可…

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…

基于GD32的简易数字示波器(2)- 原理图设计

这期记录的是项目实战,做一个简易的数字示波器。 教程来源于嘉立创,202:简易数字示波器项目文档 语雀 下图为示波器的指标 具有选择交流耦合还是直流耦合功能、输入信号不衰减或衰减50倍 输入频率理论最大800KHz输入幅值(不衰…

2024HW-->Wireshark攻击流量分析

在HW中,最离不开的,肯定是看监控了,那么就要去了解一些wireshark的基础用法以及攻击的流量!!!! 1.Wireshark的基本用法 比如人家面试官给你一段流量包,你要会用 1.分组详情 对于我…

9_springboot_shiro_jwt_多端认证鉴权_整合jwt

1. Shiro框架回顾 到目前为之,Shiro框架本身的知识点已经介绍完了。web环境下,整个框架从使用的角度我们需要关注的几个点: 要使用Shiro框架,就要创建核心部件securityManager 对象。 SpringBoot项目中,引入shiro-spr…