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

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.rhkb.cn/news/36248.html

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

相关文章

Doris单价和集群的部署

1 服务器环境准备 我们这里以3台服务器为列 1.1 硬件配置 Centos7.1及以上Ubuntu16.04及以上java1.8及以上GCC4.8.2及以上 每台服务器磁盘大小最小50G及时间相差不超或5秒 1.2 环境配置 1.2.1 修改limits.conf文件 vim /etc/security/limit.conf #在文件最后添加,*号也要添…

Linux上的`i2c-tools`工具集的编译构建和安装

源码复制到Ubuntu系统中并解压 的i2c-tools工具集的源码百度网盘下载链接&#xff1a; https://pan.baidu.com/s/1XNuMuT1auT1dMzYo3LAFmw?pwdi6xe 终端进入源码目录 cd /home/book/mybuild/i2c-tools-4.2执行编译构建命令 运行下面的命令进行编译构建 make CC${CROSS_COM…

织梦DedeCMS优化文章模版里的“顶一下”与“踩一下”样式

测试的版本5.7.1UTF-8 一、插入<head>Js代码 将下面代码插入到文章模版里的<head>标签里 <script language"javascript" type"text/javascript" src"{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> <…

基于javaweb的SpringBoot食品溯源系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

数据采集技术之python网络爬虫(中国天气网的爬取)

一、爬取中国天气网所有地区当天的天气数据&#xff08;PyCharm&#xff09;&#xff1a; 网址&#xff1a;https://www.weather.com.cn/ 下面爬取数据&#xff1a; 因为现在已经到了夜间&#xff0c;所以白天的数据已经不见了&#xff0c;但原理是一样的。 二、代码以及详情…

实验四 文件管理

实验四 文件管理 实验目的 &#xff08;一&#xff09;实验1 1&#xff0e;加深对文件&#xff0c;目录&#xff0c;文件系统等概念的理解。 2&#xff0e;掌握Linux文件系统的目录结构。 3&#xff0e;掌握有关Linux文件系统操作的常用命令。 4&#xff0e;了解有关文件…

一文了解ThreadLocal

什么是ThreadLocal&#xff1f; ThreadLocal是每个线程私有的&#xff0c;线程可以把自己的私有数据放到ThreadLocal里面&#xff0c;不用担心其他线程访问到自己ThreadLocal。 通过set()方法将值存入ThreadLocal或者修改值&#xff0c;get()方法取出值&#xff0c;remove()方…

河南大学数据库实验5

由于版本问题图片无法正常上传&#xff0c;如果word版本需要请私信 1.现有读者购书数据库&#xff0c;该数据库中包含三个表&#xff1a;读者相关信息表R&#xff0c;图书信息表B&#xff0c;读者订购图书表OD&#xff0c;具体情况如下表&#xff1a; 表1 R表 表2 B表 表3 …

利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例

引言 随着人工智能技术的不断进步&#xff0c;开发过程中的自动化程度也在逐步提高。阿里云推出的通义灵码AI程序员&#xff0c;作为一款创新型的智能编程助手&#xff0c;现已全面上线并兼容VS Code、JetBrains IDEs等多种开发环境。本文将介绍如何利用最新的Qwen2.5-Max模型…

Java多线程与高并发专题——在 Thread 中多个 ThreadLocal 是怎么存储的?

Thread、 ThreadLocal 及 ThreadLocalMap 三者之间的关系 在解答本文的标题问题之前&#xff0c;先要搞清楚 Thread、 ThreadLocal 及 ThreadLocalMap 三者之间的关系。 首先我们梳理下它们的定义与作用&#xff1a; Thread&#xff08;线程&#xff09; 定义&#xff1a;Th…

git tag常用操作

git tag是干嘛用的&#xff0c;相当于一个轻量级的分支。在一个分支上&#xff0c;创建一个tag&#xff0c;就是标记某一次的提交。然后方便checkout到 这个标签上。用tag的意思就是不用专门再创建一个新分支来修改后续的改动。分支不变&#xff0c;继续在上面改动&#xff0c;…

大模型开发(六):LoRA项目——新媒体评论智能分类与信息抽取系统

LoRA项目——新媒体评论智能分类与信息抽取系统 0 前言1 项目介绍1.1 项目功能1.2 技术原理1.3 软硬件环境1.4 项目结构 2 数据介绍与处理2.1 数据集介绍2.2 数据处理2.3 数据导入器 3 模型训练3.1 配置文件3.2 工具函数3.3 模型训练3.4 模型评估 4 模型推理 0 前言 微调里面&…

简单几步完成dify的本地搭建

简单几步完成dify的本地搭建

网络爬虫【爬虫库request】

我叫不三不四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲爬虫 Requests是Python的一个很实用的HTTP客户端库&#xff0c;完全满足如今网络爬虫的需求。与Urllib对比&#xff0c;Requests不仅具备Urllib的全部功能&#xff1b;在开发使用上&…

深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)

原文链接&#xff1a;从零开始的DeepSeek微调训练实战&#xff08;SFT&#xff09; 微调参考示例&#xff1a;由unsloth官方提供https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen2.5_(7B)-Alpaca.ipynbhttps://colab.research.google.com/git…

MySQL 调优

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Clion远程开发配置

代码开发环境&#xff1a;windows下&#xff0c;基于Clion 2024.3开发&#xff0c;标准为C20 代码运行环境&#xff1a;远程服务器&#xff0c;ubuntu&#xff0c;cmake版本3.12&#xff0c;gcc11.4&#xff0c;g11.4&#xff0c;gdb12.1 实现功能&#xff1a;在本地windows开…

男女搭配(数学思维)

#include <bits/stdc.h> using namespace std; int main() {// 请在此输入您的代码int t;cin>>t;while(t--){int n,m,k;cin>>n>>m>>k;int smin(n,2*m)/2;if(nm-k > 3*s) cout<<s<<endl;else cout<<(nm-k)/3<<endl;}r…

SakuraCat(1)整体架构概述 (完善中)

项目功能概述 支持Servlet组件可部署一个标准的Web App 项目架构总览 HTTP服务器&#xff1a;负责建立链接&#xff0c;处理请求的数据&#xff0c;并转发给Servlet容器。Servlet容器&#xff1a;将HttpServletRequest和HttpServletResponse对象传给对应的业务类进行相应的逻…

一种基于大规模语言模型LLM的数据分析洞察生成方法

从复杂数据库中提取洞察对数据驱动决策至关重要,但传统手动生成洞察的方式耗时耗力,现有自动化数据分析方法生成的洞察不如人工生成的有洞察力,且存在适用场景受限等问题。下文将介绍一种新的方法,通过生成高层次问题和子问题,并使用SQL查询和LLM总结生成多表数据库中的见…