2021-04-27

本文深入解析了数据结构的基础概念,包括数据元素、数据项、逻辑结构(如集合、线性、树和图)、抽象数据类型,以及算法的定义、特性(如有穷性、确定性等)和效率度量(时间复杂度和空间复杂度)。重点讲解了如何通过逻辑结构指导算法设计和优化存储结构。

一、数据结构的基本概念

1.什么是数据?

       数据是信息的载体,是描述客观事物属性的数、字符及所有能够输入到计算机中并被计算机识别和处理的符号的集合。数据是计算机程序加工的原料。(二进制0和1)

2.数据元素和数据项

       数据元素是数据的基本单位,通常作为整体进行考虑和处理

       一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。

       例:以微博中基本信息为例,基本信息是数据元素,里面的昵称、性别、生日等就是数据项。

3.数据结构、数据对象

       数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

       数据对象是具有相同性质的数据元素的集合,是一个数据的子集。

 

二、数据结构的三要素:逻辑结构、物理结构(存储结构)、数据的运算

1.数据的逻辑结构

       数据元素之间的逻辑关系是什么?

       集合、线性结构、树形结构、图结构

2.数据类型和抽象数据类型

数据类型:是一个值的集合合定义在此集合上的一组操作的总称。

  1. 原子类型:其值不可再分的数据类型(如bool、int、float)
  2. 结构类型:其值可以再分解成若干成分(分量)的数据类型(如c语言struct结构)

抽象数据类型(Abstract Data Type,ADT):是抽象组织及与之相关的操作

补充:在探讨一种数据结构时:首先应该关注逻辑结构(数据元素之间的关系)、在关注数据的运算(针对现实需求,进行什么样的运算)、最后就是存储结构的实现(实现数据结构和一些对数据结构的基本运算)

 

二、算法的基本概念

1.什么是算法?

程序 = 数据结构 + 算法

2.算法的五个特性

       1)有穷性(算法是有穷的,程序是无穷的)

       2)确定性:相同的输入只会产生相同输出

       3)可行性:可以用已有的基本操作实现算法

       4)输入:丢给算法处理的数据(输入可以是0或多个)

       5)输出:算法处理的结构(输出至少是一个)

3.“好”算法的特质

       1)正确性:能正确解决问题

       2)可读性:对算法的描述要让别人也看得懂

       3)健壮性:能够处理一些异常状况

       4)高效率和低存储量需求:省时,省内存。时间复杂度低,空间复杂度低

 

三、算法效率的度量

1.如何计算时间复杂度?

       1)找到一个基本操作(循环的话,就找最深层的循环)

       2)分析该基本操作的执行次数x与问题的规模n的关系 x=f(x)

       3)x的数量级O(n)就是算法的时间复杂度T(n)

2.计算规则

加法规则:

乘法规则:

O(1 )<O()<O(n )<O()<O()<O()<O()<O()

       常对幂指阶

3.空间复杂度

       与实践复杂度相似,(普通程序和递归程序)空间复杂度首先需要找到所占空间大小的相关变量。

       遵循加法规则和乘法规则、常对幂指阶

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值