数据结构与算法(Java实现)之【数据结构和算法概述】

一、介绍

在这里插入图片描述

数据结构在计算机学科中的地位

在这里插入图片描述

二、看几个实际编程中遇到的问题

(1)字符串、链表

在这里插入图片描述

(2)二维数组

在这里插入图片描述

(3)环形链表

在这里插入图片描述

(4)巴拉巴拉

在这里插入图片描述

三、理论基础

(1)基础概念

在这里插入图片描述

  • 1、数据(data)
    数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。
    数据包含整型、实型、布尔型、图像、字符、声音等一切可以输入到计算机中的符号集合。

  • 2、数据元素(Data Element)
    组成数据的基本单位 ,是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。
    在这里插入图片描述
    一个数据元素可由一个或多个数据项(Data Item)组成,数据项是有独立含义的最小单位。

  • 3、数据对象(Data Object)
    数据对象是性质相同的数据元素的集合,是数据的一个子集。
    在这里插入图片描述

  • 4、数据结构(狭义)
    是指相互之间存在一种或多种特定关系的数据元素集合,是带有结构的数据元素的集合,
    它指的是数据元素之间的相互关系,即数据的组织形式。
    在这里插入图片描述
    在这里插入图片描述

  • 5、数据类型(Data Type) :
    数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作 的总称。
    在高级语言中,整型类型的取值范围为:-32768~+32767,
    运算符集合为加、减、乘、除、取模,即+、-、*、/、%。
    在这里插入图片描述

  • 6、数据抽象:
    数据抽象结构是对现实世界的一种抽象,从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节
    高级语言中,如整型、实型、字符型等都是数据抽象,还可以进一步定义更高级的数据抽象,如各种表、队、栈、树、图、窗口、管理器等复杂的抽象数据类型。

  • 7、抽象数据类型(Abstract Data Type):
    指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。
    一个抽象数据类型确定了一个模型,但将模型的实现细节隐藏起来;它定义了一组运算,但将运算的实现过程隐藏起来。

ADT 有两个重要特征:
在这里插入图片描述

(2)什么是数据结构

数据结构是

  • 按某种逻辑关系组织起来的一批数据
  • 按一定的映象方式把它存放在计算机存贮器中
  • 在这些数据上定义了一个运算的集合

数据结构的内容可归纳为三个部分,即逻辑结构存储结构运算集合
在这里插入图片描述

逻辑结构

是指数据元素之间逻辑关系描述。
形式化描述: Data_Structure=(D,R),其中D是数据元素的有限集,R是D上关系的有限集
四类基本的结构
集合结构、线性结构、树型结构、图状结构。
在这里插入图片描述
在这里插入图片描述

存储结构

是指逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。是数据结构的实现;是数据结构的抽象。

数据结构包括:线性结构和非线性结构。

  • 线性结构
    1)线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系
    2)线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的
    3)链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
    4)线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解.

  • 非线性结构
    非线性结构包括:二维数组,多维数组,广义表,树结构,图结构

运算集合:

在这里插入图片描述

(3)数据结构与算法中的算法设计

算法定义

Algorithm is a finite set of rules which gives a sequence of operation for solving a specific type of problem.

算法是规则的有限集合,是为解决特定问题而规定的一系列操作。

算法的5大特性

在这里插入图片描述

设计的要求:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不要再叫鲁棒性了
在这里插入图片描述
在这里插入图片描述

(4)算法描述工具

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5)对算法作出性能评价

评价算法的标准:

评价一个算法主要看这个算法所占用机器资源的多少,而这些资源中时间代价与空间代价是两个主要的方面,通常是以算法执行时间和所占用的存储空间来判断一个算法的优劣。

性能评价:

在这里插入图片描述

关于算法执行时间:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最坏时间复杂度:讨论算法在最坏情况下的时间复杂度,即分析最坏情况下以估计出算法执行时间的上界。
在这里插入图片描述
在这里插入图片描述

常用的时间复杂度频率计数

在这里插入图片描述

(6)数据结构与高级语言表示

在这里插入图片描述

回顾

在这里插入图片描述
在这里插入图片描述

做两道题

在这里插入图片描述
答案
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高高飞起的勇敢麦当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值