2024王道数据结构考研丨第一章:绪论

news2024/12/24 2:20:09

2024王道数据结构考研笔记专栏将持续更新,欢迎 点此 收藏,共同交流学习…

文章目录

  • 第一章:绪论
      • 1.1数据结构的基本概念
      • 1.2数据结构的三要素
      • 1.3算法的基本概念
      • 1.4算法的时间复杂度
      • 1.5算法的空间复杂度

第一章:绪论

1.1数据结构的基本概念

1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。

2.数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。

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

4.数据类型:数据类型是一个值的集合和定义再此集合上的一组操作的总称。

1)原子类型。其值不可再分的数据类型。如bool 和int 类型。
2)结构类型。其值可以再分解为若干成分(分量)的数据类型。
3)抽象数据类型。抽象数据组织及与之相关的操作。

5.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

1.2数据结构的三要素

1.数据的逻辑结构
逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。
逻辑结构包括:

  1. 集合结构:结构中的数据元素之间除“同属一个集合”外,别无其它关系。
  2. 线性结构:结构中的数据元素之间只存在一对一的关系,除了第一个元素,所有元素都有唯一前驱;除了最后一个元素,所有元素都有唯一后继。
  3. 树形结构:结构中数据元素之间存在一对多的关系。
  4. 图状结构:数据元素之间是多对多的关系。

2.数据的存储结构(物理结构)
存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。
存储结构包括:

  1. 顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
  2. 链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
  3. 索引存储:在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)
  4. 散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。

3.数据的运算:施加在数据上的运算包括运算的定义何实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

1.3算法的基本概念

程序=数据结构+算法
算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
算法的特性:
1.有穷性:一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成。
2.确定性:算法中每条指令必须有确定的含义,对于相同的输入只能得到相同的输出。
3.可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
4.输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
5.输出:一个算法有一个多个输出,这些输出是与输入有着某种特定关系的量。
好的算法达到的目标:

  1. 正确性:算法应能够正确的求接问题。
  2. 可读性:算法应具有良好的可读性,以帮助人们理解。
  3. 健壮性:输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名奇妙地输出结果。
  4. 效率与低存储量需求:效率是指算法执行的时间,存储量需求是指算法执行过程中所需要的最大存储空间,这两者都与问题的规模有关。

1.4算法的时间复杂度

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(n),它表示随问题规模n的增大而增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。

1.5算法的空间复杂度

算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它是问题规模n的函数。记为S(n)=O(g(n))。


在这里插入图片描述

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

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

相关文章

Vue - vxe-table 表格合并行应用

Vue - vxe-table 表格合并行应用 一. 将相同的列数据合并为一行实现效果实现方法 二. 拓展合并:根据某个字段合并后的数据 进行合并其他字段列实现效果实现方法 vxe-table 地址:https://vxetable.cn/v2/#/table/start/install 一. 将相同的列数据合并为一…

亚马逊云科技作为中国出海力量之一,为中国企业提供技术桥梁

这是一个真实的故事:一家出海企业的项目交付需要在非洲吉布提部署上云,企业负责人在地图上找了半天才找到吉布提,而亚马逊云科技仅用了3天的时间就为企业在当地的业务开展,交付了IT基础设施。对于出海企业来说,这种效率…

前端学习--Vue(2)常见指令

一、Vue简介 1.1 概念 Vue是一套用于构建用户界面的前端框架 框架:现成解决方案,遵守规范去编写业务功能 指令、组件、路由、Vuex、vue组件库 1.2 特性 数据驱动视图 vue连接页面结构和数据,监听数据变化,自动渲染页面结构…

【遗传算法】【处理图像类问题】

文章目录 一、前言二、问题描述三、算法介绍四、其他知识点Reference 一、前言 近期感兴趣的算法,以前没这么好奇过一个算法。时间没想象的焦虑,认真做一些事情算法入门篇 二、问题描述 从前,一群扇贝在海岸边悠哉游哉地生活着。它们衣食不…

亚马逊云科技宣布推出一个新的开源示例应用程序

5月5日,亚马逊云科技宣布推出一个新的开源示例应用程序,这是一个虚构的二手书电子商务商店,被称之为Bob’s Used Books,可供使用亚马逊云科技的.NET开发人员使用。“亚马逊云科技的.NET宣传和开发团队定期与客户交谈,在…

如何科学地利用高光谱图像合成真彩色RGB图像?

如何科学地利用高光谱图像合成真彩色RGB图像? 1. 前言 参考链接: 色匹配函数是什么? - 知乎 (zhihu.com) 23. 颜色知识1-人类的视觉系统与颜色 - 知乎 (zhihu.com) 色彩空间基础 - 知乎 (zhihu.com) 色彩空间表示与转换 - 知乎 (zhihu.com) CIE XYZ - fresh…

Golang笔记:使用melody包进行WebSocket通讯

文章目录 目的使用示例与说明总结 目的 WebSocket是Web开发应用中非常常用的功能,用于客户端和服务器间长时间的实时双向数据通讯。Golang中官方并没有实现这个功能,需要借助第三方的包来实现。 目前被最广泛使用的包是 gorilla/websocket https://pkg…

Host头攻击

转载与:https://blog.csdn.net/weixin_47723270/article/details/129472716 01 HOST头部攻击漏洞知识 Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现虚拟主机技术。 运用虚拟主机技术&a…

第八章:C语言的简单指针

谈起指针,简直就是谈虎色变,学习C语言的人都知道,指针的难度,就好像高中的导数一样,难道离谱,但是但是,别慌呀,咱们慢慢来,空杯心态,一步一个脚印&#xff0c…

【STM32】STM32使用继电器

STM32使用继电器 其实继电器简单来说就是一个开关,VCC表示电源正极、GND表示电源负极、IN表示信号输入脚,COM表示公共端,NC(normal close)表示常闭端,NO(normal open)表示常开端。一般情况下是常闭状态。 …

为数字人充值AI情商 小冰“克隆人”要卖给谁?

近日,小冰公司启动“GPT克隆人计划”,据悉最短只要采集三分钟数据,就能帮助用户创造源于本人性格、技能、声音、外貌的AI克隆人,如同拥有“平行世界的第二人生”。 这不免让人想起了《流浪地球2》里华仔为剧中女儿“数字续命”的…

chatgpt赋能Python-python3_2__1

Python3-2<<1&#xff1a; 了解运算符的使用和优先级 Python是一种优雅而高效的编程语言&#xff0c;而Python3-2<<1是一个关于运算符优先级的例子&#xff0c;值得我们深入探讨。 在这篇文章中&#xff0c;我们将介绍Python3中运算符的优先级&#xff0c;并对其中…

chatgpt赋能Python-python3_6怎么用

Python3.6是什么&#xff1f; Python是一种非常流行的编程语言&#xff0c;旨在提供简洁、易读且易于维护的代码。Python3.6是该语言的下一个主要版本&#xff0c;带来了一些改进并改进了现有功能&#xff0c; Python3.6有哪些新特性&#xff1f; 字典内置方法&#xff0c;支…

chatgpt赋能Python-python3_53怎么安装

Python3.5.3安装方法及注意事项 Python是一种高级编程语言&#xff0c;被广泛应用于科学&#xff0c;数学&#xff0c;机器学习等领域。在本文中&#xff0c;我们将介绍如何安装Python 3.5.3版本&#xff0c;并提供注意事项以确保安装过程顺利进行。 步骤1&#xff1a;下载Py…

生态碳汇涡度通量数据分析

生态碳汇涡度相关监测与通量数据分析 朱老师&#xff08;副教授&#xff09;&#xff1a;来自国内重点高校&#xff0c;长期从事涡度通量观测与分析研究&#xff0c;发表SCI论文多篇&#xff0c;主持国家与地方科研项目多个&#xff0c;在生态环境数据处理与分析中具有丰富的实…

java企业车辆管理系统myeclipse定制开发mysql数据库网页模式java编程jdbc

一、源码特点 java企业车辆管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助 mysql数据库&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 java企业车辆管理系统myeclipse定制开发mysql 二、功能介绍 此次系统…

navicat连接mysql数据库密码忘记了快速找回

本机环境&#xff1a; mac 12.2.1 mysql8.0.3 问题&#xff1a; 连接navicat时&#xff0c;报错Access denied for user ‘root‘‘localhost‘ (using password: YES) 解决&#xff1a; 1.在navicat中导出xxx.ncx文件 勾选Export Password&#xff0c;选择要输出的文件目录…

nvidia-smi 参数详解

nvidia-smi 参数详解 参数详情GPU本机中的GPU编号&#xff0c;有多块显卡的时候从0开始&#xff0c;图中的GPU编号为0Fan风扇转速&#xff0c;N/A表示没有风扇NameGPU类型&#xff0c;图中GPU为NVIDIA GeForce GTX 1050TiTempGPU温度PerfGPU性能状态&#xff0c;从P0(最大性能)…

视频怎么转化为mp3,5种高效方法任选

视频怎么转化为mp3呢&#xff1f;想必这是我们工作过程中经常遇见的问题。众所周知&#xff0c;MP3格式是一种常见的音频格式&#xff0c;支持多种音频播放器和设备。通过将视频转换为MP3格式&#xff0c;用户可以方便地将视频的音频部分提取出来&#xff0c;保存为与视频大小不…

ChatGPT Plugin已正式上线 - 如何优先使用?

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…