【数据结构和算法的概念等】

目录

  • 一、数据结构
    • 1、数据结构的基本概念
    • 2、数据结构的三要素
      • 2.1 数据的逻辑结构
      • 2.2 数据的存储(物理)结构
      • 2.3 数据的运算
  • 二、算法
    • 1、算法概念
    • 2、算法的特性及特点
    • 3、算法分析

一、数据结构

1、数据结构的基本概念

数据: 是所有能输入到计算机中并能被程序识别和处理的符号集合。包括:数值数据(整数、实数等),非数值数据(图形、图像、声音、文字等)。

数据元素: 数据的基本单位,通常作为一个整体进行考虑和处理,一个数据元素可由若干数据项组成;

数据项: 构成数据元素的不可分割的最小单位;

数据对象: 数据对象是具有相同性值的数据元素的集合,是数据的一个子集;

关系:
在这里插入图片描述
举例进行理解:

  1. 学校里有很多不同类型的表:数据
  2. 单独的一张成绩单:数据对象
  3. 成绩单中每一行有姓名、学号、班级等:数据元素
  4. 成绩单中每一行的每一个表格姓名等都是一个个的数据项

数据类型: 一组值的集合以及定义于这个值集上的一组操作
1.原子类型:其值不可再分的数据类型,如bool和int类型
2.结构类型:其值可以再分解为若干成分的数据类型,如结构体

抽象数据类型(Abstract Data Type, ADT): 一个数据模型以及定义在该模型上的一组操作,也就是定义了一个数据结构

2、数据结构的三要素

数据结构: 相互之间存在相互关系的数据元素的集合,如下为数据的三要素:

逻辑结构存储(物理)结构数据的运算

2.1 数据的逻辑结构

数据的逻辑结构是指:数据之间逻辑关系的整体。

集合:数据元素之间没有关系;
线性结构:数据元素之间是一对一的线性关系;
树结构:数据元素之间是一对多的层次关系;
图结构:数据元素之间是多对多的任意关系。

2.2 数据的存储(物理)结构

数据的存储结构是指:数据及其逻辑结构在计算机中的表示。

顺序存储结构: 用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置表示;
链式存储结构: 用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示;
索引存储结构: 又称为直接寻址,可以通过下标来进行直接访问,索引项的一般形式是(关键字,地址);
散列存储结构: 又称为哈希存储,地址会通过hash算法来运算成一个相同长度的hash值,然后存放这个hash值,而不是直接存放地址,在访问关键字的时候会通过运算解码hash值,然后再访问。

注意:

  1. 若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的;
  2. 数据的存储结构会影响存储空间分配的方便程度;
  3. 数据的存储结构会影响对数据运算的速度。

2.3 数据的运算

根据逻辑结构来定义,根据存储结构来实现。

二、算法

1、算法概念

算法: 是对特定问题求解步骤的一种描述,是指令的有限序列。程序 = 数据结构 + 算法 ;算法必须是有穷的,而程序可以是无穷的。

2、算法的特性及特点

算法的基本特性:

1. 有穷性: 有穷时间内能执行完
2. 确定性: 相同输入只会输出相同结果
3. 可行性: 可以用乙游的基本操作实现算法
4. 输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合
5. 输出: 一个算法有一个或多个输出,这些输出是与输入有着某种特定的关系

好算法的特点:

  1. 高效性与低存储要求:即算法执行省时、省内存,时间复杂度低、空间复杂度低
  2. 正确性:能正确解决问题
  3. 健壮性:指能处理一些异常
  4. 可读性:对算法的描述要让其他人也能看懂

3、算法分析

  1. 时间复杂度:当问题规模充分大时,算法中基本语句的执行次数在渐近意义下的阶,关注的是增长趋势,用大写O记号表示;
  2. 空间复杂度:算法在执行过程中需要的辅助空间数量,地柜程序看递归深度与问题规模n的关系。

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

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

相关文章

D634-341C电液伺服系统比例控制阀 R40KO2M0NSS2

D634-341C/R40KO2M0NSS2宁波秉圣现货供应 宁波秉圣工业技术有限公司是一家专门从事于欧洲,美国等多国家的进口备件进出口销售、技术咨询、技术服务、自动化设备服务为一体的贸易公司。公司的优势品牌如下:德国REXROTH(力士乐)、德国MOOG、美…

全球数字贸易中心解析_保税区保的是什么税_为什么保税区还要交税

保税区税收机制深度解析:保税免的是什么税?为何仍需缴税? 保税区概述 保税区,作为海关特殊监管区域的重要一环,享有国家高度开放的政策优惠与功能齐全的海关监管服务。它专为保税加工、保税物流和保税服务而设&#…

【Python】已解决:ModuleNotFoundError: No module named ‘pip‘(重新安装pip的两种方式)

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例 四、重新安装pip的两种方式方式一:使用get-pip.py脚本方式二:使用ensurepip模块五、注意事项 已解决:ModuleNotFoundError: No module named ‘pip’(重新安装pip的…

GLM4大模型微调入门实战-命名实体识别(NER)任务

[GLM4]是清华智谱团队最近开源的大语言模型。 以GLM4作为基座大模型,通过指令微调的方式做高精度的命名实体识别(NER),是学习入门LLM微调、建立大模型认知的非常好的任务。 显存要求相对较高,需要40GB左右。 知识点1&…

Unity之王牌飞行员申请出战

目录 📚一、准备工作 💻二、飞机的两套控制器 🎮2.1 起飞前 🕹️2.2 起飞后 🚀三、实现射击功能 💥3.1 射击脚本 💥3.2 爆炸脚本 💥3.3 爆炸特效脚本 🛠️四、组…

AGE 可比性、相等性、可排序性和等效性

AGE已经对原始类型(布尔值、字符串、整数和浮点数)和映射的相等性有了良好的语义。此外,Cypher对整数、浮点数和字符串的可比性和可排序性也有很好的语义。然而,处理不同类型的值与Postgres定义的逻辑和openCypher规范存在偏差&am…

Linux_网络编程_TCP

服务器客户端模型: client / server brow / ser b / s http p2p socket——tcp 1、模式 C/S 模式 》服务器/客户端模型 server :socket()-->bind()--->listen()-->accept()-->recv()-->close()client :socket()-->conn…

STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)

一:步进电机简介 步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正比…

超越单兵作战:多智能体 Multi-Agent System (MAS)

超越单兵作战:多智能体 Multi-Agent System (MAS) Multi-Agent System 是指一个系统中有多个智能体同时工作的情况。在这样的系统中,每个智能体都具有一定程度的自主性,可以独立执行任务、做决定,并且能够与其他智能体进行交互&a…

STM32的Code、RO-data、RW-data、ZI-data和RAM以及flash的关系

对于刚接触stm32编程的同学来说,通常不知道如何选择合适型号的芯片来开发自己的项目,下面就分析一下多大的片内ram以及flash能符合我们项目的需求。 不知道大家有没有注意到,我们的项目每次编译完成后,都会出现这个Program Size&…

亚马逊卖家告别熬夜!批量定时上下架,自动调价

必用能功三个,不限制上传商品。 大家好,今天来讲下这款erp的定时上下架功能。 打开工具这栏选择智能调价,点击添加智能调价选择店铺,选择定时上架的商品添加也可以全部添加。每个商品的价格都是不同的,可以点击保底价…

windows10开启防火墙,增加入站规则后不生效,还是不能访问后端程序

一、背景: 公司护网要求开启防火墙,开启防火墙后,前后端分离的项目调试受影响,于是增加入站规则开放固定的后台服务端口,增加的mysql端口3306和redis端口6379,别人都可以访问,但是程序的端口808…

抖音工具箱功能菜单解析分享

一 支持视频链接 采集/点赞/评论/收藏 二 支持导入 用户id私信 内容自定义 可 关注后私信对方 私信间隔自定义 三 支持多直播间 发言 内容-间隔自定义 五 支持 监听指定用户作品 新发作品 自动 点赞/评论/收藏 六 支持 视频评论实时监控 新发评论自动采集获取 七 智能 暂停…

NLP入门——卷积语言模型的搭建、训练与预测

语言模型建模是针对句子建模,主要分为掩码语言模型和自回归语言模型。 我们从corpus中截取一句话作为例子,这句话是bpe分词后的句子: 1994 年 5 月 17 日 安全 理事会 第 33 77 次 会议 通过 掩码语言模型的主要机制是:例如将33 7…

PostgREST API 安装及基础使用

PostgREST是一个独立的Web服务器,它将PostgreSQL数据库转换为RESTful API。它提供基于基础数据库的结构自定义的API。 PostgREST安装 首先访问Releases PostgREST/postgrest (github.com),根据安装平台选择下载的源码。比如我现在的设备是Mac但是我的…

删掉此电脑中烦人的百度网盘、WPS、迅雷下载图标(还有导航栏)-win10/11

删掉此电脑的图标 1、首先 搜索 注册表管理器 或者 win R 输入 regedit 2、在红框的地方输入这串路径(下2选1): 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\ HKEY_CURRENT_US…

【C++】使用C++实现基于Socket的通信

在本文中,我们将详细讨论如何使用C实现基于Socket的通信,并设计一个TLV(Type-Length-Value)协议用于数据交互。TLV协议因其灵活性和可扩展性,在多种通信协议中被广泛使用,特别是在需要动态定义数据结构的场…

【Axure】产品原型如何在谷歌浏览器中打开

作为一名前端开发来说,在拿到产品的原型图后,如何打开?直接用谷歌浏览器打开,是打不开的,需要安装对应的插件。但是谷歌插件市场在不翻墙的情况下,是没有办法直接打开的,分享一种超级简单的方法…

深入解析RocketMQ的名字服务机制:功能、原理与应用

NameServer 是专为 RocketMQ 设计的轻量级名字服务,它的源码非常精简,八个类 ,少于 1000 行代码。 这篇文章, 笔者会从基础概念、Broker 发送心跳包、NameServer 维护路由、Zookeeper vs NameServer 四个模块揭秘名字服务的设计精…

电脑怎样连接打印机?详细步骤告诉你!

在现代办公环境中,打印机是必不可少的设备之一。无论是打印文档、图片还是其他资料,连接打印机都是我们日常工作中的基本操作。然而,不同类型的打印机和连接方式可能会让人感到困惑。本文将介绍电脑怎样连接打印机的3种方法,帮助您…