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

news2025/7/16 12:07:41

目录

  • 一、数据结构
    • 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.coloradmin.cn/o/1913375.html

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

相关文章

利用SpringBoot+rabbitmq 实现邮件异步发送,保证100%投递成功

在之前的文章中,我们详细介绍了 SpringBoot 整合 mail 实现各类邮件的自动推送服务。 但是这类服务通常不稳定,当出现网络异常的时候,会导致邮件推送失败。 本篇文章将介绍另一种高可靠的服务架构,实现邮件 100% 被投递成功。类…

基于Java中的SSM框架实现水稻朔源信息系统项目【项目源码】

基于Java中的SSM框架实现水稻朔源信息系统演示 SSM框架 SSM框架是基于Spring、SpringMVC以及Mybatis实现的针对JAVA WEB端应用的开发框架,通过SSM框架结构可以实现以上三种框架的优点集合,从而实现更加高效便捷的系统开发和呈现。该框架结构通过Spring框…

红日靶场----(二)2.信息收集

上期我们已经猜解到了MySQL的账号密码。 这期我们开始目录枚举,我们知道目录枚举能不能获得有用的信息,需要强大的字典。 只有字典强大才能精准的爆破到目录及文件,下面我会介绍一个强大的字典文件。 目录枚举之SecLists字典: …

面试题 22:解释 Python 中的成员运算符?

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

如何恢复永久删除的婚礼照片

我们的生活就像一本记忆剪贴簿,充满了褪色和模糊的快照。尽管我们想记住事情并留住快乐的回忆,但随着时间的流逝,它们会被冲走。为了避免这种情况并记住这些记忆,我们以照片的形式捕捉瞬间。这有助于缓解和分享那些快乐的时刻。但…

SpringIOC原理

SpringIOC原理 1.概念 Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、…

手机回收站视频过期怎么恢复?跟随这2个方法解锁新技能

各位看官,是不是有时候一不留神,手机里的珍贵视频就不翼而飞了?然后你疯狂地寻找,心里五味杂陈,就像热锅上的蚂蚁一样团团转。视频过期怎么恢复,到底怎样才能找回来呢?别担心,今天小…

园区电表4G/Lora远程无线通讯-安科瑞自助缴费系统

项目案例:张江高科产业园 背景 上海张江高科技园区自1992年成立以来,经过近二十年的开发, 园区构筑了生物医药创新链,集成电路产业链和软件产业链的框架。园区建有国家上海生物医药科技产业基地、国家信息产业基地、国家集成电路…

基于vue的地图特效(飞线和标注)

这段代码的主要功能是在页面加载完成后,初始化一个 echarts 地图图表,并配置了相关的地理数据、散点数据、线条数据以及样式效果,最后在指定的 div 元素中进行展示。 需要再vue中的框架实现,不能单独直接运行。 标注 type: effe…

STM32G474使用HRTIM触发多路ADC采样,通过DMA传输,通过串口打印显示,实现PWM中间时刻采样,避免开关噪声

本工程使用CUBEIDE进行配置以及编译调试,使用的硬件为STM32G474官方开发板NUCLEO-G474RE CUBEIDE配置 HRTIM配置 本章工程使用HRTIM定时器进行ADC的触发,打开主定时器,子定时器A,B,C。(本工程未使用到A与C定时器,配置…

绝地归来!英伟达等提出JeDi:无需微调,个性化图像生成新SOTA![CVPR 2024]

文章链接:https://arxiv.org/pdf/2407.06187 github链接:https://research.nvidia.com/labs/dir/jedi 本文提出了一种无需微调的文本生成图像方法,采用了新颖的联合图像扩散模型。 提出了一种简单且可扩展的数据合成流程,用于生成…

kafka.common.KafkaException: Socket server failed to bind to xx:9092

部署分布式集群的时候遇到的错误。 解决方案: 修改config下的server.properties,添加 listenersPLAINTEXT://:9092 advertised.listenersPLAINTEXT://自己的服务器ip:9092 然后重新启动,检查进程是否存在ps -aux | grep kafka。 成功启动。

微信小程序 - 本地存储 增加有效期

小程序的本地存储API提供了wx.setStorageSync和wx.setStorage来存储数据,注意的是,小程序的本地存储并没有明确的有效期设置,存储的数据在不超过限制的情况下,会一直保留。 一、小程序本地存储API 小程序的本地存储API提供了设置…

全网最全的接口文档速成

文章目录 接口文档内容前言1. 前后端分离开发1.1 介绍1.2 开发流程1.3 前端技术栈 2. Yapi2.1 介绍2.2 使用2.2.1 准备2.2.2 定义接口2.2.3 导出接口文档2.2.4 导入接口文档 3. Swagger3.1 介绍3.2 使用方式3.3 查看接口文档3.4 常用注解3.4.1 问题说明3.4.2 注解介绍3.4.3 注解…

【C++高阶】高效数据存储:理解并模拟实现红黑树Map与Set

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:了解 红黑树 🌹🌹期待您的关注 🌹🌹 ❀模拟实现Map与Set 📒1.…

【RHCE】转发服务器实验

1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通

PHP禁止IP访问和IP段访问(代码实例)

PHP禁止IP和IP段访问 实现IP限制是Web开发中常见的需求之一&#xff0c;它可以用于限制特定IP地址的访问权限。在PHP中&#xff0c;我们可以通过一些方法来实现IP限制。 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.…

使用CANoe创建仿真项目并执行

使用CANoe创建开关控制灯亮灯灭的仿真环境 一、创建仿真工程 1.在某盘符下创建一个文件夹&#xff0c;命名为testpanel(自定义&#xff0c;与项目相关)&#xff0c;在文件夹testpanel下面分别创建CANdb、Panels和Nodes文件目录 2.打开CANoe&#xff0c;单击File→New&#xff…

分享中国-吉林省和9个地级市州人文地图

分享中国-吉林省和9个地级市州人文地图 1、吉林省 吉林省&#xff0c;位于中国东北地区中部&#xff0c;地处东北亚地理中心位置&#xff0c;因吉林市而得名&#xff0c;清康熙时在松花江畔建吉林乌拉城&#xff0c;满语意为“沿江的地方”。 吉林省以中部大黑山为界&#x…

How do I format markdown chatgpt response in tkinter frame python?

题意&#xff1a;怎样在Tkinter框架中使用Python来格式化Markdown格式的ChatGPT响应&#xff1f; 问题背景&#xff1a; Chatgpt sometimes responds in markdown language. Sometimes the respond contains ** ** which means the text in between should be bold and ### te…