DS 0818(第一章 绪论)

本文介绍了数据结构的基本概念,包括数据元素、数据对象、逻辑结构和存储结构,强调了数据结构对算法的影响。此外,讨论了算法的特性,如有穷性、确定性和效率度量,特别是时间复杂度的计算方法,以及大O表示法的规则。
部署运行你感兴趣的模型镜像

数据结构

基本概念

  1. 数据:
  2. 数据项:构成数据元素的不可分割的最小单位
  3. 数据元素:数据的基本单位,常作为整体进行考虑使用
  4. 数据结构:相互之间存在特定关系的数据元素怒的集合
  5. 数据对象:具有相同性质的数据元素的集合

数据结构的三要素

  1. 逻辑结构:集合,线性,树形,图

  2. 数据的存储结构(物理结构):顺序,链式,索引,散列(哈希存储)

    数据的存储结构会影响存储空间的分配方便程度,运算速度

  3. 数据的运算:包括运算的定义和实现。运算的定义是指针对逻辑结构的,指出运算的功能。运算的实现是针对储存结构的,指出运算的具体操作步骤。

数据类型,抽象数据类型
数据类型:一个值的集合和定义在此集合上的一组操作

  1. 原子类型,其值不可再分得数据类型
  2. 结构类型:其值可以再分解为若干成分的数据类型

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

用数学化的语言定义逻辑结构,运算,与具体的实现无关

算法

程序=数据结构+算法

  1. 数据结构将问题信息化,并将信息存入计算机,同时实现对数据结构的基本操作
  2. 算法则是如何处理这些信息,以解决实际问题

算法的五个特性

  1. 有穷性:算法需要有穷步后结束,程序可以是无穷的
  2. 确定性
  3. 可行性
  4. 输入:有0个或多个输入
  5. 输出:有一个或多个输出

一个好算法追求的目标

  1. 正确性
  2. 可读性:可以用伪代码,文字描述
  3. 健壮性:对于非法数据,可以有反应
  4. 高效率及低存储量需求:时间复杂度,空间复杂度

算法的效率度量

**算法时间复杂度:**事前估计算法时间开销T(n)与问题规模n的关系

void LoveYou(int n){
int i=1;
while(n<=n){
i++;
printf("I Love You\n");
}
printf("I Love You More Than %d \n",n);
}

T(n)=3n+n

大O表示法

  1. 加法规则:多项相加只保留最高阶的项,且系数变为1
  2. 乘法规则:多项想乘,都保留

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n²)<O(n³)<O(2的n次方)<O(n!)<O(n的n次方)

口诀: 常对幂指阶


计算方法

  1. 顺序执行的代码只影响常数项,可以忽略
  2. 只需挑循环中的一个基本 操作,分析他与n的关系即可
  3. 对于多层嵌套的循环只需考虑其最深层的循环的执行次数与n的关系

空间复杂度S(n)
程序执行时的内存需求

  1. 程序代码
  2. 数据
  3. 函数递归调用带来的内存开销(函数调用栈)—》递归调用深度

您可能感兴趣的与本文相关的镜像

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值