01、Java 数据结构:数据结构和算法的概述
创始人
2024-05-02 09:50:07
0

数据结构和算法的概述

  • 1 参考教材
  • 2 数据结构
    • 2.1 数据的逻辑结构
    • 2.2 数据的存储结构
    • 2.3 数据的运算
  • 3 基本的数学概念的复习
    • 3.1 函数的定义
    • 3.2 极限
    • 3.3 对数
  • 4 算法
    • 4.1 算法的基本特性
    • 4.2 算法设计的要求
    • 4.3 时间复杂度和空间复杂度是衡量算法优劣的重要指标

1 参考教材

主要参考的教材:《Java数据结构和算法(第2版)》 [美] 拉弗,计晓云 等
在这里插入图片描述

2 数据结构

  • 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关
  • 数据结构包括数据的逻辑结构、数据的存储结构以及数据的运算

2.1 数据的逻辑结构

  • 反映数据元素之间的关系
  • 有集合、线性结构、树型结构、图型结构
    在这里插入图片描述

2.2 数据的存储结构

  • 逻辑结构在计算机内存中的实现,它包括数据元素的表示和元素之间关系的表示
  • 有顺序存储结构(数组)、链式存储结构(链表)、索引存储结构、散列存储结构等
    在这里插入图片描述

2.3 数据的运算

对数据施加的操作,这种一系列的操作就是算法

3 基本的数学概念的复习

3.1 函数的定义

给定一个数集 A,假设其中的元素为 x。现对A中的元素 x 施加对应法则 f,记作 f(x),得到另一数集 B。假设 B 中的元素为 y。则 y 与 x 之间的等量关系可以用 y=f(x) 表示。把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域 A、值域 C 和对应法则 f。其中核心是对应法则 f,它是函数关系的本质特征

3.2 极限

初等数学研究的对象是不变的量,高等数据研究的对象是变动的量。比如极限。“极限”是数学中的分支——微积分的基础概念,广义的“极限”是指“无限靠近而永远不能到达”的意思。极限是一种“变化状态”的描述。此变量永远趋近的值A叫做“极限值”

3.3 对数

  • 在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数,反之亦然
  • 如果 a 的 x 次方等于 N(a>0,且a不等于1)a^x=N,那么数 x 叫做以 a 为底 N 的对数(logarithm),记作 x=logaN。其中,a 叫做对数的底数,N 叫做真数

4 算法

  • 按照某种逻辑关系组织起来的一批数据,按一定的方式把它存放在计算机的内存里,在这个基础上为了实现某个功能(比如查找某个元素,删除某个元素,给所有元素排序等等)而进行的一些列操作,我们把这一些列的操作步骤描述出来就是算法
  • 算法也可以解释为:计算机求解一个问题所需的一系列步骤

4.1 算法的基本特性

  • 输入:一个算法有0个或者多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身给出了初始条件
  • 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的
  • 有穷性:算法必须能在执行有限个步骤之后终止
  • 确切性:算法的每一步骤必须有确切的定义
  • 可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成

4.2 算法设计的要求

  • 正确性:设计的算法能满足具体问题的需求,并且任何合法的输入都会得出正确的输出
  • 可读性:是指算法被写好之后,该算法理解的难易程度,一个算法可读性的好坏十分重要。如果一个算法比较抽象且难以理解,那么这个算法就不利于交流和推广使用,对于修改、扩展、维护来说都十分不方便,因此,在追求高效的同时,也应是算法尽量简明易懂
  • 健壮性:当输入数据非法时,算法也会做出相应的判断,而不会因为输入的错误而造成瘫痪
  • 高效性:时间效率高(时间复杂度)和需要的存储空间少(空间复杂度)

4.3 时间复杂度和空间复杂度是衡量算法优劣的重要指标

  • 时间复杂度:是用程序执行的次数来衡量,不是程序执行的时间
  • 空间复杂度:用程序执行所需要的最大内存

算法问题实质上就是数学问题,计算时间复杂度和空间复杂度远远没这么简单

相关内容

热门资讯

最早期的安卓系统,揭秘最早期安... 亲爱的读者,你是否曾好奇过,那个陪伴我们手机成长的安卓系统,它的起源究竟是怎样的呢?今天,就让我们一...
安卓双系统添加应用,轻松实现多... 你有没有想过,你的安卓手机里可以同时运行两个系统呢?听起来是不是很酷?想象一边是熟悉的安卓系统,一边...
pipo安卓进系统慢,探究pi... 最近是不是发现你的Pipo安卓系统更新或者运行起来特别慢?别急,今天就来给你好好分析分析这个问题,让...
怎样使用安卓手机系统,安卓手机... 你有没有发现,安卓手机已经成为我们生活中不可或缺的一部分呢?从早晨闹钟响起,到晚上睡前刷剧,安卓手机...
双系统安卓安装caj,轻松实现... 你有没有想过,你的安卓手机里装上双系统,是不是就能同时享受安卓和Windows系统的乐趣呢?没错,这...
安卓使用ios系统教程,安卓用... 你是不是也和我一样,对安卓手机上的iOS系统充满了好奇?想要体验一下苹果的优雅和流畅?别急,今天我就...
安卓系统gps快速定位,畅享便... 你有没有遇到过这样的情况:手机里装了各种地图导航软件,但每次出门前都要等上好几分钟才能定位成功,急得...
安卓手机系统更新原理,原理与流... 你有没有发现,你的安卓手机最近是不是总在提醒你更新系统呢?别急,别急,让我来给你揭秘一下安卓手机系统...
安卓系统通知管理,全面解析与优... 你有没有发现,手机里的通知就像是一群调皮的小精灵,时不时地跳出来和你互动?没错,说的就是安卓系统的通...
安卓系统手机哪买,揭秘哪里购买... 你有没有想过,拥有一部安卓系统手机是多么酷的事情呢?想象你可以自由安装各种应用,不受限制地探索各种功...
安卓系统 ipv4,基于安卓系... 你知道吗?在智能手机的世界里,有一个系统可是无人不知、无人不晓,那就是安卓系统。而在这个庞大的安卓家...
目前安卓是什么系统,探索安卓系... 亲爱的读者,你是否曾好奇过,如今安卓系统究竟是什么模样?在这个科技飞速发展的时代,操作系统如同人体的...
安卓6.0系统比5.0,从5.... 你有没有发现,自从手机更新了安卓6.0系统,感觉整个人都清爽了不少呢?没错,今天咱们就来聊聊这个话题...
安卓2.36系统升级,功能革新... 你知道吗?最近安卓系统又来了一次大变身,那就是安卓2.36系统升级!这可不是一个小打小闹的更新,而是...
安卓系统源码怎么打开,并可能需... 你有没有想过,安卓系统的源码就像是一扇神秘的门,隐藏着无数的技术秘密?想要打开这扇门,你得掌握一些小...
安卓8.0系统体验视频,智能革... 你有没有听说安卓8.0系统最近可是火得一塌糊涂啊!作为一个紧跟科技潮流的数码达人,我当然要来给你好好...
宣传系统漫画app安卓,探索安... 亲爱的读者们,你是否曾在某个午后,百无聊赖地打开手机,想要寻找一些轻松愉悦的读物?今天,我要给你介绍...
鸿蒙替换安卓系统吗,开启智能生... 你知道吗?最近科技圈里可是炸开了锅,因为华为的新操作系统鸿蒙系统,据说要大举进军手机市场,替换掉安卓...
手机安卓系统深度清理,解锁手机... 手机里的东西是不是越来越多,感觉就像一个装满了杂物的储物柜?别急,今天就来教你一招——手机安卓系统深...
安卓上的windows系统,融... 你有没有想过,在安卓手机上也能体验到Windows系统的魅力呢?没错,这就是今天我要跟你分享的神奇故...