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 时间复杂度和空间复杂度是衡量算法优劣的重要指标

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

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

相关内容

热门资讯

安卓系统自带的网页,功能与特色... 你有没有发现,每次打开安卓手机,那熟悉的系统界面里总有一个默默无闻的小家伙——安卓系统自带的网页浏览...
美咖云系统安卓版,开启智能生活... 你有没有发现,最近手机上多了一个叫“美咖云系统安卓版”的小家伙?它就像一个魔法师,轻轻一点,就能让你...
安卓系统推荐最好的手机,盘点性... 你有没有想过,拥有一部性能卓越的手机,就像是拥有了移动的宝藏库?在这个信息爆炸的时代,一部好手机不仅...
安卓11系统能精简吗,释放潜能 你有没有发现,随着手机越来越智能,系统也越来越庞大?安卓11系统,这个最新的操作系统,是不是也让你觉...
安卓自动重启系统软件,揭秘原因... 手机突然自动重启,是不是感觉整个人都不好了?别急,今天就来和你聊聊这个让人头疼的安卓自动重启系统软件...
苹果手机x刷安卓系统,探索安卓... 你有没有想过,你的苹果手机X竟然也能刷上安卓系统?是的,你没听错,就是那个一直以来都和我们苹果手机X...
安卓系统智商低吗,智商低下的真... 你有没有想过,为什么安卓系统的智商总被调侃得好像有点低呢?是不是觉得它总是慢吞吞的,有时候还犯点小错...
安卓系统手机联系人,揭秘你的社... 你有没有发现,手机里的联系人列表就像是一个小小的社交圈呢?里面藏着我们的亲朋好友、工作伙伴,甚至还有...
安卓系统免费铃声下载,打造个性... 手机里那首老掉牙的铃声是不是让你觉得有点out了呢?别急,今天就来给你支个招,让你轻松给安卓手机换上...
安卓系统用哪个桌面好,打造个性... 你有没有发现,手机桌面可是我们每天都要面对的“脸面”呢?换一个好看的桌面,心情都能跟着好起来。那么,...
虚拟大师是安卓10系统,功能与... 你知道吗?最近在手机圈里,有个新玩意儿引起了不小的轰动,那就是虚拟大师!而且,更让人惊喜的是,这个虚...
安卓系统与苹果优缺点,系统优缺... 说到手机操作系统,安卓和苹果绝对是两大巨头,它们各有各的特色,就像两道不同的美味佳肴,让人难以抉择。...
安卓win双系统主板,融合与创... 你有没有想过,一台电脑如果既能流畅运行安卓系统,又能轻松驾驭Windows系统,那该有多爽啊?没错,...
安卓系统可精简软件,轻松提升手... 你有没有发现,手机里的安卓系统越来越庞大,软件也越装越多,有时候感觉手机就像个“大肚子”,不仅运行速...
安卓系统基于linux的代码,... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、办公的安卓系统,其实背后有着一套复杂的基于Linux的代...
苹果和安卓的拍照系统,谁更胜一... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?无论是记录生活的点滴,还是捕捉美丽的...
苹果和安卓系统不同吗,系统差异... 你有没有想过,为什么你的手机里装的是苹果的iOS系统,而朋友的手机却是安卓系统呢?这两种系统,看似都...
安卓系统有多少级,揭秘其多级架... 你有没有想过,那个陪伴我们日常生活的安卓系统,它其实有着丰富的层级结构呢?没错,就是那个让我们的手机...
华为鸿蒙系统与安卓的,技术融合... 你知道吗?最近科技圈可是炸开了锅,华为鸿蒙系统与安卓的较量成为了大家热议的话题。这不,今天我就来给你...
什么安卓手机是苹果系统,搭载苹... 你有没有想过,为什么有些人宁愿花大价钱买苹果手机,而有些人却对安卓手机情有独钟呢?其实,这个问题背后...