【数据结构】数据结构,算法 概念

0.本篇问题: 

  1. 数据、数据元素、数据对象、数据项之间的基本关系?
  2. ADT是什么?
  3. 数据结构的三要素?
  4. 数据的逻辑结构有哪些?
  5. 数据的存储结构有哪些?
  6. 算法的五个特征?
  7. O(1)  O(logn)  O(n^n)  O(n)  O(n^2)    O(n^3)  O(2^n)  O(n!)  O(nlogn) 大小关系?

★ 错题&典型题

1. 可以用( )定义一个完整的数据结构

A.数据元素        B.数据对象        C.数据关系        D.抽象数据类型

2.以下属于逻辑结构的是( )

A.顺序表        B.哈希表        C.有序表        D.单链表

3.以下关于数据结构的说法中,正确的是( )

A.数据结构的逻辑结构独立于其存储结构

B.数据结构的存储结构独立于其逻辑结构

C.数据的逻辑结构唯一决定其存储结构

D.数据结构仅由其逻辑结构和存储结构决定

4.一个算法应该是( )

A.程序        B.问题求解步骤的描述        C.要满足五个基本特性        D. A和C

5.某算法的时间复杂度为O(n^2),则表示该算法的( )

A.问题规模是n^2                   B.执行时间等于n^2        

C.执行时间与n^2成正比        D.问题规模与n^2成正比

6.【2017】 求下面程序时间复杂度

int func(int n) {int i = 0, sum = 0;while (sum < n)	sum += ++i;return i;
}

7.【2019】求下面程序时间复杂度 

x = 0;
while (n >= (x + 1) * (x + 1))x = x + 1;

8.【2022】求下面程序时间复杂度

int sum = 0;
for (int i = 1; i < n; i *= 2)for (int j = 0; j < i; j++)sum++;

一、数据、数据元素、数据对象、数据项、数据结构、数据类型

1.1 概念(P1)

  • 数据结构是相互之间存在一种或多种特定关系的数据元素的集合;它包括三方面的内容:逻辑结构,存储结构,数据的运算。
  • 数据对象是具有相同性质的数据元素的集合,是数据的一个子集;
  • 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合;
  • 数据元素是数据的基本单位,通常作为一个整体进行考虑和处理;
  • 一个数据元素有若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
  • 数据类型:原子类型、结构类型、抽象数据类型(ADT):描述了数据的逻辑结构和抽象运算,通常用(数据对象,数据关系,基本操作)这样的三元组来表示,eg.栈、队列,树...(ADT和数据密切相关,但不完全相同)

1.2  我的理解

  1. 数据项是最小的,数据是最大的;
  2. 数据项构成数据元素;
  3. 数据元素构成数据对象;
  4. 所有数据对象的总和是数据。

  5. 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。(数据元素+关系)
  6. 数据对象是具有相同性质的数据元素的集合,是数据的一个子集。(数据元素)
  • 世界上所有的信息、符号的总和是数据。
  • 这些数据有所有大学学生数据(数据对象),所有餐厅顾客数据(数据对象),XX大学学生数据(数据对象),所有动物的XX数据(数据对象)...
  • XX大学同学ABCD...数据(数据元素),...
  • 班级学生有自己的学号(数据项),姓名(数据项),年龄(数据项)...
  • 数据结构是带存储关系的同学ABCD...的数据(通过它你不仅知道这些数据,还知道它们之间的关系是怎样的,如何存储的)
  • 数据对象,数据元素,数据项根据研究内容的不同都是相对的,这项研究中的数据元素可能是下一项研究中的数据对象。

二、数据结构的三要素

2.1 数据结构三要素

逻辑结构,存储结构,运算        知存储就知逻辑,知逻辑不一定知存储!

        2.2.1 逻辑结构

                四类基本结构:线性结构、集合(同属一个集合无其他关系)、树形、图状结构(网状结构)。

        2.2.2 存储结构

                ①顺序存储

                ②链式存储

                ③索引存储(索引表中每项是索引项(关键字,地址)) 优点:检索快,缺点:索引表额外占据存储空间;增删要修改索引表,时间花费多。

                ④散列存储(哈希存储)

        2.2.3 运算

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

三、算法 

3.1 算法的概念和特征

        算法是对特定问题求解步骤的一种描述,他是指令的有限数列,其中的每条指令表示一个或多个操作。

        特征:①有穷性 ②确定性 ③可行性 ④输入>=0 ⑤输出>=1

3.2 时间复杂度&空间复杂度 

        是问题规模n的函数。

Q:算法问题规模永远是A:不是。在算法中,问题规模不一定是n。

n通常用来表示输入规模,比如在一个排序算法中,n可能代表要排序的元素个数。但问题规模也可以用其他方式来衡量。 
例如,在图算法中,除了用顶点数量n来表示问题规模,还可能会涉及边的数量m。对于一些复杂的算法,如计算两个图的同构问题,问题规模可能是由多个因素共同决定的,包括顶点数、边数、顶点和边的属性等复杂因素。
在矩阵运算相关的算法中,矩阵的行数和列数都可能影响问题规模,而不是简单地用一个n来表示。

        常见的渐进时间复杂度比较:

        O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

答案:1.D        2.C        3.A        4.B        5.C        6.O(n^(1/2))        7.O(n^(1/2))        8.O(n)

-THE END-

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

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

相关文章

同步Oracle及mysql至KADB的KFS配置文件参考

Oracle源端flysync.ini文件 注意&#xff1a;oracle用户名大写 mysql源端flysync.ini文件 附&#xff1a;目标端KADB的flysync.ini文件 [m_kes_3113] 源端为KES kufl-port3113 datasource-typekingbase rolemaster replication-host10.4.43.53 replication-port54321 …

PECL(Positive Emitter-Coupled Logic)电平详解

一、PECL电平的定义与核心特性 PECL&#xff08;正射极耦合逻辑&#xff09;是一种基于 射极耦合逻辑&#xff08;ECL&#xff09;技术 的高速差分信号标准&#xff0c;采用 正电源供电&#xff08;如5V或3.3V&#xff09;。其核心特性包括 高速传输、低噪声、强抗干扰能力&am…

以 ArcGIS Pro 为笔,绘就水墨地图画卷

一、引言 水墨画&#xff0c;作为中国传统绘画艺术的瑰宝&#xff0c;以其独特的韵味和表现力&#xff0c;在艺术领域占据着重要地位。它通过水与墨的交融&#xff0c;展现出山水之间的灵动与韵味。 而将这种艺术形式与现代地理信息系统&#xff08;GIS&#xff09;技术相结合…

软考网络安全专业

随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显&#xff0c;成为社会各界普遍关注的焦点。在这样的背景下&#xff0c;软考网络安全专业应运而生&#xff0c;为培养高素质的网络安全人才提供了有力支撑。本文将对软考网络安全专业进行深入剖析&#xff0c;探讨其在信…

在线 SQL 转 SQLAlchemy:一键生成 Python 数据模型

一款高效的在线 SQL 转 SQLAlchemy 工具&#xff0c;支持自动解析 SQL 语句并生成 Python SQLAlchemy 模型代码&#xff0c;适用于数据库管理、后端开发和 ORM 结构映射。无需手写 SQLAlchemy 模型&#xff0c;一键转换 SQL 结构&#xff0c;提升开发效率&#xff0c;简化数据库…

自定义tiptap插件

本文为开发开源项目的真实开发经历&#xff0c;感兴趣的可以来给我的项目点个star&#xff0c;谢谢啦~ 具体博文介绍&#xff1a; 开源&#xff5c;Documind协同文档&#xff08;接入deepseek-r1、支持实时聊天&#xff09;Documind &#x1f680; 一个支持实时聊天和接入 - 掘…

网络安全需要学多久才能入门?

网络安全是一个复杂且不断发展的领域&#xff0c;想要入行该领域&#xff0c;我们需要付出足够多的时间和精力好好学习相关知识&#xff0c;才可以获得一份不错的工作&#xff0c;那么网络安全需要学多久才能入门?我们通过这篇文章来了解一下。 学习网络安全的入门时间因个人的…

EG82088串口边缘计算网关

EG82088串口边缘计算网关 EG8208是一款专业级8路独立隔离型RS485通讯控制器,通过Modbus及JSON支持、灵活的TCP/IP和UDP切换、内置监控自诊断等特性,广泛应用于工业自动化、楼宇管理等领域,为用户提供卓越的数据采集和设备管理解决方案。 接口类型&#xff1a;8RS485/8DO/1LAN协…

Linux下GCC和C++实现带多组标签的Snowflake SQL查询批量数据导出程序

设计一个基于多个带标签Snowflake SQL语句作为json配置文件的Linux下GCC的C代码程序&#xff0c;实现根据不同的输入参数自动批量地将Snowflake数据库的数据导出为CSV文件到本地目录上&#xff0c;标签加扩展名.csv为导出数据文件名&#xff0c;文件已经存在则覆盖原始文件。需…

Trae AI 辅助修复uniapp 微信小程序的Bug

一、transparent的兼容问题 设计稿&#xff1a; 实际在iphone 6 plu上&#xff1a; 直接让Trae AI修复&#xff1a; 修改后验证通过。 二、v-if分支中子元素根据输入框中内容长度动态添加class样式失效 遇到了个“怪问题”&#xff0c;在其他手机或者开发者工具都正常。也…

conda install 和 pip install 的区别

conda install 和 pip install 是两个常用的包安装命令&#xff0c;但它们在很多方面存在差异。 1. 所属管理系统不同 1.1 conda install conda install 是Anaconda和Miniconda发行版自带的包管理工具 conda 的安装命令。conda 是一个跨平台的开源包管理系统和环境管理系统&…

uni-app App 端分段导出 JSON 数据为文件

在开发过程中&#xff0c;我们经常需要将大量数据导出为 JSON 文件&#xff0c;尤其是在处理长列表或大数据集时。然而&#xff0c;直接将所有数据写入一个文件可能会导致性能问题&#xff0c;尤其是在移动设备上。为了优化性能并提高用户体验&#xff0c;我们可以将数据分段导…

视频推拉流EasyDSS案例分析:互联网直播/点播技术与平台创新应用

随着互联网技术的快速发展&#xff0c;直播/点播平台已成为信息传播和娱乐的重要载体。特别是在电视购物领域&#xff0c;互联网直播/点播平台与技术的应用&#xff0c;不仅为用户带来了全新的购物体验&#xff0c;也为商家提供了更广阔的营销渠道。传统媒体再一次切实感受到了…

MySQL再次基础 向初级工程师迈进

作者&#xff1a;在计算机行业找不到工作的大四失业者 Run run run ! ! ! 1、MySQL概述 1.1数据库相关概念 1.2MySQL数据库 2、SQL 2.1SQL通用语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库的SQL语句不区…

手写一个简易版的tomcat

Tomcat 是一个广泛使用的开源 Servlet 容器&#xff0c;用于运行 Java Web 应用程序。深入理解 Tomcat 的工作原理对于 Java 开发者来说是非常有价值的。本文将带领大家手动实现一个简易版的 Tomcat&#xff0c;通过这个过程&#xff0c;我们可以更清晰地了解 Tomcat 是如何处理…

VSTO(C#)Excel开发8:打包发布安装卸载

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

如何逐步迭代衍生出一个网络安全产品

逐步迭代衍生出一个网络安全产品需要结合市场需求、技术趋势和用户反馈&#xff0c;通过系统化的开发和优化过程来实现。以下是逐步迭代的详细步骤&#xff1a; 1. 确定市场需求和产品定位 市场调研&#xff1a;分析当前网络安全市场的痛点和趋势&#xff0c;如云安全、零信任、…

uni-app打包h5并部署到nginx,路由模式history

uni-app打包有些坑&#xff0c;当时运行的基础路径填写了./&#xff0c;导致在二级页面刷新之后&#xff0c;页面直接空白。就只能换一个路径了&#xff0c;nginx也要跟着改&#xff0c;下面是具体步骤。 manifest.json配置web 运行路径写/h5/&#xff0c;或者写你们网站的目…

Ceph(1):分布式存储技术简介

1 分布式存储技术简介 1.1 分布式存储系统的特性 &#xff08;1&#xff09;可扩展 分布式存储系统可以扩展到几百台甚至几千台的集群规模&#xff0c;而且随着集群规模的增长&#xff0c;系统整体性能表现为线性增长。分布式存储的水平扩展有以下几个特性&#xff1a; 节点…

Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)

Linux驱动开发实战&#xff08;五&#xff09;&#xff1a;Qt应用程序点RGB灯&#xff08;保姆级快速入门&#xff01;&#xff09; 文章目录 Linux驱动开发实战&#xff08;五&#xff09;&#xff1a;Qt应用程序点RGB灯&#xff08;保姆级快速入门&#xff01;&#xff09;前…