Day01 数据结构概述

目录

一、数据结构概述

1、基本概念

2、数据结构

3、逻辑关系(线性结构&非线性结构)

4、物理结构(存储结构)

5、算法

6、算法特征

二、时空复杂度

1、时间复杂度

2、空间复杂度

3、结构类型


一、数据结构概述

1、基本概念

  • 数据:能被计算机存储和识别的信息。文字、图形、视频、音频
  • 数据结构:计算机存储数据和组织数据的方式

2、数据结构

  • 数据的基本单位:数据元素(Data Elment)
  • 数据的最小单位:数据项
  1. 数据元素:由多个数据项组成。
  2. 数据对象(Data Object):多个数据元素的集合
  3. 数据结构:描述多个数据之间的逻辑结构和物理结构。
  • 逻辑结构:数据元素之间的逻辑关系
  • 物理结构(存储结构):计算机中存储数据的方式

3、逻辑关系(线性结构&非线性结构)

  • 集合 (无关系)
  • 线性结构(一对一)
  • 树状结构(一对多)
  • 图(多对多)

4、物理结构(存储结构)

  • 顺序存储结构
  • 链式存储结构

5、算法

        算法就是解决问题的步骤和方法。

6、算法特征

  1. 有穷性:程序执行必须在有限次数内完成,每一次必须在有限时间内执行完成
  2. 确定性:执行每一条语句都必须有准确的解释,不能出现二义性,意味着相同的输入就会有相同的输出
  3. 可行性:程序中每一条复杂语句都可分解为基本指令,并且每一条基本指令都必须在有限时间内完成
  4. 输入项:可以有一个或多个参数作为初始条件,然后对程序进行有效执行
  5. 输出项:可以有一个或多个输出

总结:程序=数据结构+算法

二、时空复杂度

1、时间复杂度

  1. 时间复杂度不是用算法的运行时间来衡量得
  2. 时间复杂度指的是算法程序语句的执行次数,也称为语句频度。一般采用O()表示时间复杂度,采用T()表示程序语句的执行次数。
T(n)=O(n)+n;

采用估算值作为时间复杂度,即影响最大的一项,舍弃系数

计算技巧: 只需要计算出算法的基本执行语句的最高次项,并舍弃最高次项系数,使用O(xx)表示 如果没有使用n来表示规模,则计算出的是一个常数项,则时间复杂度O(1)

做题技巧

  • 提到模块————耦合度
  • 提到算法————复杂度

2、空间复杂度

  • 程序在运行期间所占内存的空间大小叫做空间复杂度。
  • 一个好的算法通常是执行时间短,占用空间少,并且可读性好、容易维护,易于移植到其他平台。

3、结构类型

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

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

相关文章

FullCalendar日历组件集成实战(12)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

记Windows环境下JDK安装配置

写在文章开头 这是笔者非常早期接触Java时写的文章,为方便每次系统重装时能够快速完成JDK解压版安装配置遂用此文记录了一下整个过程。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 &#x…

springboot和mybatis项目学习

#项目整体样貌 ##bean package com.example.demo.bean;public class informationBean {private int id;private String name;private String password;private String attchfile;public int getId() {return id;}public String getName() {return name;}public String getPas…

基于Java技术的ERP管理系统:企业资源规划的先进解决方案

在当前数字化转型的趋势下,企业对于高效、稳定且具备扩展性的管理系统的需求日益增加。为了满足这一需求,我们开发了一款基于Java技术的鸿鹄ERP(企业资源规划)管理系统。该系统采用了Spring Cloud Alibaba、Spring Boot、MybatisP…

Unity Protobuf+RPC+UniTask

远程过程调用(RPC)协议详解 什么是RPC协议RPC的基本原理RPC的关键组件RPC的优缺点Protobuf函数绑定CallEncodeRecvDecodeSocket.Send和Recv项目地址 什么是RPC协议 远程过程调用(Remote Procedure Call,简称RPC)是一种…

WPF学习(1)--类与类的继承

在面向对象编程中,继承是一种机制,允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。继承使我们能够创建一个通用类,然后根据需要扩展或修改它以创建更具体的类。以下是…

适合小白学习的项目1832javaERP管理系统之成本管理Myeclipse开发mysql数据库servlet结构java编程计算机网页项目

一、源码特点 java 成本管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了serlvet设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

工作手机安全管理平台建设方案

第一章 项目背景 移动互联网的时代,各个行业在在推进移动办公和掌上办公,通过智能手机、平板电脑等进行线上办公,这样能提高了企业人员的办公效率,从而为客户提供更及时的服务。 在移动办公提高了工作人员办公效率的同时&#xf…

codegeex2-6b-int4 部署

codegeex2-6b-int4 模型文件 CodeGeeX2 仓库文件地址 CodeGeeX2 推理教程 conda create -n codegeex2 python3.10 -y conda activate codegeex2 pip install -r requirements.txt -i https://pypi.mirrors.u…

树的经典问题和方法

树(Tree)是计算机科学中一种非常重要的数据结构,广泛应用于各种算法和程序中。树的经典问题涉及树的遍历、查找、构建、删除等操作,其中遍历操作尤为关键,它是理解和解决其他树问题的基础。本文将探讨树的经典问题&…

CSS动画 学习

css动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数。常见的动画效果很多,比如平移、旋转、缩放等,css实现动画的方式有以下几种: transition:实现渐变动画transform&#xff1a…

郑州建筑设计资质对于企业社会责任的体现有哪些考量?

员工权益:是否为员工提供公平的薪酬、健康的工作环境、职业培训和发展机会。 企业是否遵守劳动法律法规,保障员工的合法权益,如工作时间和休假、职业安全和健康。 工程质量与安全:设计项目是否遵循高标准的工程质量和安全规范&a…

抓包工具 Wireshark 的下载、安装、使用、快捷键

目录 一、什么是Wireshark?二、Wireshark下载三、Wireshark安装四、Wireshark使用4.1 基本使用4.2 过滤设置1)捕获过滤器2)显示过滤器 4.3 过滤规则1)捕获过滤器-规则语法2)显示过滤器-规则语法 4.4 常用的显示过滤器规…

94. 二叉树的中序遍历(Swift实现, 迭代)

题目描述 使用迭代方法解题 class TreeNode {var val: Intvar left: TreeNode?var right: TreeNode?init(_ val: Int) {self.val valself.left nilself.right nil} }func inorderTraversal(_ root: TreeNode?) -> [Int] {var result [Int]() // 用于存储中序遍历…

kali中安装zsteg教程

1、下载文件 git clone http://www.github.com/zed-0xff/zsteg 2、第一步需要保证虚拟机是有网络的,不然无法克隆 3、可以将网络设置成如下后重启,访问百度看看能不能访问,若可以访问,则进行下一步 4、查看源,删除源&…

elasticsearch结构化搜索

Elasticsearch的结构化搜索(Structured Search)是指对具有明确格式和结构的数据进行搜索的过程。这类数据包括日期、时间、数字、布尔值等,它们都有精确的格式,可以进行逻辑操作,比如比较数值范围或判断值的大小。结构…

Python-程序流程控制

目录 1. 分支语句 1.1 if 1.2 if-else 1.3 if-elif-else 2. 循环语句 2.1 while 2.2 for 3.跳转语句 3.1 break 3.2 continue 1. 分支语句 1.1 if aint(input("请输入成绩")) if a>100:print ("牛逼") if a<60:print("不牛逼")1.2 if-e…

css预处理是什么?作用是什么?

CSS预处理器是一种增强和扩展标准CSS的工具。它们允许开发者使用变量、嵌套规则、Mixin&#xff08;混合&#xff09;以及函数等高级功能&#xff0c;以更模块化和可维护的方式编写CSS代码。预处理器如Sass&#xff08;SCSS&#xff09;、Less和Stylus等&#xff0c;通过引入这…

期末复习5---PTA

以下是提交正确的代码&#xff1a; int max_len( char *s[], int n ) {int i;int max0;for(i1;i<n;i){if(strlen(s[i])>strlen(s[max]))maxi;}return strlen(s[max]); } 以下是我自己写的代码&#xff1a; 出现的问题是 &#xff1a;括号加的不对&#xff0c;需要细心…

同城如何异地共享文件?

在现代社会中&#xff0c;跨地区的合作变得越来越普遍&#xff0c;而这也带来了共享文件的需求。当我们身处不同的城市&#xff0c;如何高效地共享文件已经成为一项迫切的需求。本文将介绍一种名为“同城异地共享文件”的解决方案&#xff0c;帮助解决这一问题。 2. 天联组网—…