数据结构知识点总结-绪论 数据结构基本术语 算法及评价

  • 要求

(1)对数据结构这么课学了哪些知识有个清楚的认知;

(2)掌握目录结构,能复述出来每个知识点下都有哪些内容。

如下图所示,可自行制作思维导图,针对自己薄弱的地方进行复习。

  • 绪论

    • 相关术语

绪论中会介绍数据结构的一些基本概念,要对数据模型有基本的了解。

数据(Data是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料,应用程序处理各种各样的数据。

数据元素(Data Element是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等。

数据对象(Data Object或数据元素类(Data Element Class)是具有相同性质的数据元素的集合。

在某个具体问题中,数据元素都具有相同的性质(元素值不一定相等),属于同一数据对象(数据元素类),数据元素是数据元素类的一个实例。例如,在交通咨询系统的交通网中,所有的顶点是一个数据元素类,顶点A 和顶点B 各自代表一个城市,是该数据元素类中的两个实例,其数据元素的值分别为A 和B。

数据结构研究的三个方面

(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;

(3)对各种数据结构进行的运算。

数据的逻辑结构和存储结构是密不可分的两个方面,一个算法设计取决于所选定的逻辑结构,而算法实现依赖于所采用的存储结构。

数据的逻辑结构

   数据的逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。数据的逻辑结构分线性结构和非线性结构。

数据的存储结构

   存储结构是指数据结构在计算机中的表示,又称为映像,也叫物理结构。它包括元素的表示和关系的表示。数据的存储结构依赖于计算机,数据的存储结构主要有:顺序存储、链式存储、索引存储、散列存储。

数据的运算

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

  • 算法及评价

算法是什么?

算法是对特定问题求解步骤的描述,它是指令的有限序列,其中每条指令表示一个或多个操作。算法要求能够对一定规范的输入,在有限时间内获得所要求的输出,因此一个算法也经常被封装为一个函数,用来实现特定的功能。

算法优劣的衡量标准:不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

   算法具有五个特性:有穷性、确切性、输入、输出、可行性。

   一个算法有0个或多个输入。一个算法有一个或多个输出,没有输出的算法是毫无意义的。

算法的衡量:

   算法原地工作指算法所需的辅助空间未常量,即O(1)。

例题

例1:下面程序的时间复杂度是?

x = 2;while(x < n/2){x = 2*x;}答案:O(log2N)

每执行一次x以二倍往上增长,注意 x < n/2与 x < n 一个量级。

含有二分的思想在里面,二分即倍数增长或倍数下降后重新赋值。因此复杂度为logn。

只要含有二分的思想就有logN

例2:请给出下面程序的时间复杂度?

int fact(int n){if(n <= 1) return 1;return n * fact(n-1);}

求阶乘的递归函数,一共执行了n次的量级,故时间复杂度为O(N)。

例3:下列程序的时间复杂度为?

count = 0;for(k = 1; k <=n; k*=2){for(j = 1; j<=n; j++){coun++;}}

分析下count++的执行次数在什么量级上,答案为:O(N*logN)。

例4:下列程序的时间复杂度为?

     

答案:

  这个不是二分的思想,幂次增长。

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

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

相关文章

3款黑科技软件,却常被错认是微软开发,纯国产的它功能逆天

美丽的外表往往大同小异&#xff0c;而实用的软件却是难得一遇的珍品。尤其是最后一款国产软件&#xff0c;尽管许多人都在使用&#xff0c;但却常常因为误解而闹出笑话。 1、PhotoDemon 这款由国外技术专家开发的免费、开源图片编辑工具&#xff0c;体积小巧&#xff0c;仅需…

019 Spring Boot+Vue 电影院会员管理系统(源代码+数据库+文档)

部分代码地址&#xff1a; https://github.com/XinChennn/xc019-cinema 一、系统介绍 cinema项目是一套电影院会员管理系统&#xff0c;使用前后端分离架构开发包含管理员、会员管理、会员卡管理、电影票、消费记录、数据统计等模块 二、所用技术 后端技术栈&#xff1a; …

xss-跨站脚本攻击漏洞

前备知识&#xff1a; Cookie和Session是Web开发中用于维持用户状态、跟踪用户会话的核心技术&#xff0c;它们的主要目的是在无状态的HTTP协议基础上实现有状态的用户交互。 **Cookie**&#xff1a; - Cookie是一种由服务器发送到客户端&#xff08;通常是用户的浏览器&#x…

Ansys携手DXOMARK共同开发突破性的虚拟摄像头系统验证解决方案

改进的简化、集成式的工作流程助力摄像头系统光学性能的提升。 主要亮点 ✔ Ansys联合DXOMARK率先将可靠的虚拟摄像头系统验证解决方案推向市场 ✔ Ansys Lumerical™、Ansys Zemax OpticStudio™和Ansys Speos™可创建能够生成RAW图的工作流程。生成的RAW图可通过DXOMARK…

【快刊合集】中科院2区SCI,Elsevier出版社,仅2个月录用!

【SciencePub学术】 1 计算机智能类SCI&#xff08;高质量/分区上升&#xff09; 【期刊简介】IF&#xff1a;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区 【出版社】Elsevier出版社 【版面类型】正刊&#xff0c;仅5篇版面 【检索情况】SCIE在检&#xff0c;预计3个…

如何在Linux搭建MinIO服务并实现无公网ip远程访问内网管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

MySQL的SQL语句

1.MySQL连接 连接命令一般是这样写的 mysql -h$ip -P$port -u$user -p比如:mysql -h127.0.0.1 -P3306 -uroot -p -h 指定连接的主机地址&#xff1b;-P 指定连接端口号&#xff1b;-u 指定用户名 -p指定用户名密码 2.SQL分类 DDL(Data Definition Language) 数据定义语言&…

jvm面试题目补充

jdk&jre Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK&#xff08;Java Development Kit&#xff09;。 把Java API类库中的Java SE API子集 [1] 和Java虚拟机这两部分统称为JRE&#xff08;Java Runtime Environment&#xff09;&#xff0c;JRE是支持…

【好书推荐-第五期】《Java开发坑点解析:从根因分析到最佳实践》(异步图书出品)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

服务器权限:Error: EACCES: permission denied, open‘/Cardiac/uniquC.csv

背景&#xff1a; 我想在服务器上传一个文件uniquC.csv&#xff0c;但是服务器说我没有权限 解决方案&#xff1a; 1. 查看目前是否存在对文件夹的权限 ls -ld /Cardiac/ # your fold path 此时&#xff0c;我发现 这也意味着root也没有赋予写的权限。 2. 拿到root权限 …

云原生应用测试:挑战与方法

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

input/textarea光标位置插入文字

需求是右边编辑sql时&#xff0c;点击左侧常量参数&#xff0c;直接在光标处插入对应的参数&#xff0c;大致实现代码如下&#xff1a; <input type"text" id"myInput" value"Hello, World!"> <button onclick"insertText()&qu…

SSM框架学习笔记07 | Spring MVC入门

文章目录 1. HTTP协议2. Spring MVC2.1. 三层架构2.2. MVC&#xff08;解决表现层的问题&#xff09;2.3. 核心组件 3. Thymeleaf3.1. 模板引擎3.2. Thymeleaf3.3. 常用语法 代码 1. HTTP协议 网址&#xff1a;https://www.ietf.org/ &#xff08;官网网址&#xff09; https:…

伪原创一键生成软件:为你创作有价值的文章

伪原创一键生成软件是一种现代写手必备的得力助手。无论您是写作新手还是经验丰富的老手&#xff0c;它都能帮助您快速生成有吸引力的文章&#xff0c;让您在竞争激烈的市场中脱颖而出。伪原创一键生成软件是一款让写作变得轻松且高效的神奇工具。它为写手们节省了大量的时间和…

零感佩戴的开放式耳机,音质悦耳更耐听,西圣Air体验

每天都用蓝牙耳机的朋友应该不少&#xff0c;我平时也经常戴&#xff0c;不过最近我用的不是常规的入耳式耳机&#xff0c;因为它佩戴不舒适&#xff0c;戴久了耳朵特别难受。所以现在我换上了开放式耳机&#xff0c;这种耳机叫做OWS&#xff0c;我的这款是西圣Air&#xff0c;…

【appium】appium连接模拟器/android真机启动app测试+代码

目录 一、搭建环境 1、准备Android设备&#xff08;真机Android手机/模拟器&#xff09; 2、Android开发环境&#xff08;Android SDK&#xff09; 3、安装Appium 安装Appium-desktop 4、让adb连接测试设备 4.1 怎么让adb去连接上夜神模拟器&#xff1f;不使用connect 打…

创建spring项目报错:read time out

在新电脑使用idea创建spring项目时&#xff0c;提示read time out多次尝试无果。 发现只要取消这个选择就可以正常下载。&#xff08;版本是202202&#xff09; 取消勾选后可以正常下载 &#xff08;下载完成后&#xff0c;再次创建sprin项目勾上无影响。&#xff09;

强大的安卓文件传输工具:Android File Transfer for Mac

Android File Transfer for Mac是一款专为Mac用户开发的安卓文件传输工具。它提供了一种无缝连接Mac电脑与安卓设备的方式&#xff0c;使我们能够轻松地在两者之间传输文件。不管是照片、音乐、视频还是文档&#xff0c;我们都可以通过这个工具将它们从安卓设备传输到Mac电脑上…

375FPS! 谷歌提出MaskConver“重校正用于全景分割的纯卷积模型

https://arxiv.org/2312.06052 近年来&#xff0c;基于Transformer的模型由于其强大的建模能力以及对语义类和实例类的统一表示为全局二值掩码&#xff0c;在全景分割中占据主导地位。 在本文中&#xff0c;我们回顾了纯粹的卷积模型&#xff0c;并提出了一种新的结构MaskConve…

Orange3数据预处理(转置组件)

选项 "Remove redundant instance" 是在转置时进行数据去重的选项。当勾选此选项时&#xff0c;如果在原始数据中存在多个相同的记录&#xff08;即每个特征列中的数据完全一样&#xff09;&#xff0c;则在转置操作中只保留其中唯一的一个记录&#xff0c;并从转置后…