C语言数据结构 概念辨析---数据结构 算法 等

************注:并不会将每一个知识点都罗列出来,只会写出概念易混淆的注释!

数据,数据元素与数据项

  1. 数据的基本单位是数据元素而不是数据项,数据元素是数据不可分割的最小整体。单个数据元素可以表示一定的意义。若干数据项构成数据元素,单个数据项无意义。
  2. 数据对象与数据项也有区别,前者是指若干性质相同的数据元素组成的集合。数据对象是数据的一个子集。总的来说:数据>数据对象>数据元素>数据项。

数据的逻辑结构

这是一个比较难理解的概念,书中的定义为“数据结构是相互之间存在一种或多种特定关系的数据元素的集合”。可见,数据结构最终仍是落脚到“集合”上,它是数据元素的集合,且集合中的数据元素之间存在一定的关系。形式定义为:
Data Structure=(D,S)
根据关系的不同特性,数据结构可分为:集合,线性,图状,网状结构。

映像

以上所说均为逻辑结构和相应的概念,将其映射到计算机中,亦有一系列相应的概念与之对应。
数据元素—元素或结点(由若干位组合形成的一个位串)
数据项—数据域(每一个位串中相应的子位串)
另:顺序存储结构(借助在存储器中的相对位置)和链式存储结构(借助指针)是根据映像的不同来划分的。

数据类型

数据类型是一个值的集合和定义在这个值集上的一组操作的总称,具体有两类:原子类型和结构类型。这些都非常好理解~
其中,要注意的是:数据类型并非只局限于高级语言中,事实上,每个处理器都提供了一组原子类型和结构类型。
另外,抽象数据类型,将其简单地理解为数据类型即可,只不过它的定义**只与逻辑特性有关,与在计算机内部的表示和实现无关。另,抽象数据类型的定义也是由一个值域和定义在该值域上的一组操作组成。即:(D,S,P)

算法的时空复杂度

  • 时间复杂度

  • 由于不同的语言,编译程序和机器对算法执行的效率均有影响,所以我们使用相对的时间单位,即:算法的时间复杂度来衡量算法的时间效率。

  • 算法的时间量度是基本操作的执行次数,而执行次数是问题规模的函数f(n),时间复杂度取其阶数。

  • 空间复杂度
    若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析数据和程序之外的空间;
    若还与算法有关,则应同时考虑输入本身所需空间。
    若额外空间对于输入量来说是常数(并非为0),则称此算法为原地工作

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值