首页 > 其他分享 >数据结构---第一讲 基本概念

数据结构---第一讲 基本概念

时间:2024-02-22 20:01:56浏览次数:25  
标签:复杂度 程序 --- 算法 长度 数据结构 数据 基本概念

1.1 什么是数据结构

  • 数据对象在计算机中的组织方式(逻辑结构、物理存储结构)
  • 数据对象必定与一系列加在其上的操作相关联,完成这些操作所用的方法就是算法

描述数据结构:抽象数据类型(abstract data type)

  • 数据类型

    • 数据对象集
    • 数据集合相关联的操作集
  • 抽象(即不具体):描述数据类型的方法不依赖于具体实现

    • 与存放数据的机器无关
    • 与数据存储的物理结构无关
    • 与实现操作的算法和编程语言均无关

抽象的好处:
TODO...

什么是算法

算法定义(Algorithm)

  • 一个有限指令集

  • 接受一些输入(有些情况下不需要输出)

  • 产生输出

  • 一定在有限步骤之后终止(操作系统就不是算法,它只是程序,因为它会一直运行)

  • 每一条指令必须

    • 有充分明确的目标,博客园有歧义
    • 计算机能处理的范围之内
    • 描述应不依赖于任何一种计算机语言以及具体的实现手段

什么是好的算法

  • 空间复杂度S(n)--根据算法写成的程序在执行时占用存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断。

  • 时间复杂度T(n)--根据算法写成的程序在执行时耗费时间的长度。这个长度往往也与输入数据的规模有关。时间复杂度过高的低效算法可能导致我们在有生之年都等不到运行结果。

经常关心以下两种复杂度:

  • 最坏情况复杂度\(T_{worst}(n)\)
  • 平均复杂度\(T_{avg}(n)\)

\[T_{avg}(n)<=T_{worst}(n) \]

复杂度的渐进表示法

image

标签:复杂度,程序,---,算法,长度,数据结构,数据,基本概念
From: https://www.cnblogs.com/xdhisgood-xy/p/18028043

相关文章

  • java.sql.SQLException: Connection is read-only. Queries leading to data modifica
    java.sql.SQLException:Connectionisread-only.Queriesleadingtodatamodificationarenot产生的原因:事务中查询的方法中,嵌套了新增或修改的方法,会报该异常。解决方法:找到报错的方法,在该方法上加上注解,@Transactional(readOnly=false)业务上加了事务控制,意思是只能查......
  • vmware三台centos虚拟机部署hadoop-3.2.4
    是在已经安装VMware和三台centos虚拟机的基础上进行的。1.进入root用户命令:su-,更新所有包命令sudoyumupdate2.删除已有jdk,安装Java命令sudoyuminstalljava-1.8.0-openjdk-devel3.修改主机名,在/etc/hosts文件中添加三台主机的IP地址和主机名的映射,可以用ping-c5[主......
  • Dr4g0nB4ll - Vulnhub靶机
    Dr4g0nB4ll-Vulnhub靶机主机发现192.168.30.133信息收集└─$nmap-sV-A192.168.30.133StartingNmap7.94(https://nmap.org)at2024-02-2203:26ESTNmapscanreportfor192.168.30.133Hostisup(0.0013slatency).Notshown:998closedtcpports(conn......
  • Vue学习笔记11--事件
    示例一:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Vue事件的基本使用</tit......
  • solution-div2contest-D
    题面可以在link看到?大力手玩题!场切了!首先看到这种题,我们一定是先想给定一个树怎么求他的最大独立集。我忘记怎么贪心了,于是考虑DP,设\(f_{u,0/1}\)表示以\(u\)为根的子树中独立集包含或不包含\(u\)这个点的最大独立集大小。转移是显然的,为了下文讲解方便还是在这里写出......
  • Linux---rsync服务
    1.rsync简介rsync英文称为remotesynchronization,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync还可以在本地主......
  • 多线程系列(六) -等待和通知模型详解
    一、简介在之前的线程系列文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信的问题。举个简单的例子,比如线程A负责将int型变量i值累加操作到10000,然后通知线程B负责把结果打印出来。这个怎么实现呢?其中一个......
  • 2、remi--ButtonLay.py
    上一篇末尾测试了一个用例,使用了四个组件:一个主容器和三个那啥;那么从这篇开始就尽量按照官方文档的顺序来进行测试了。 先看:remi.gui.BODY源码,此处链接中的代码与下面所示实际安装好的库中源码的单词个别有所区别,但不影响观看>,>remi.gui.BODY()源码classBODY(Container):......
  • 洛谷题单指南-贪心-P3817 小A的糖果
    原题链接:https://www.luogu.com.cn/problem/P3817题意分析:吃最少的糖果,保证相邻糖果数之和不大于x,需要某种贪心策略。解题思路:依次遍历相邻两盒糖果如果糖果数之和大于x,必须要吃点一部分,使得糖果数之和刚好等于x贪心策略是:优先吃后一盒糖果,因为这样可以更利于后续的判断成立......
  • Go - Data races vs. race conditions
         ......