DS 0818(第一章 绪论)

本文介绍了数据结构的基本概念,包括数据元素、数据对象、逻辑结构和存储结构,强调了数据结构对算法的影响。此外,讨论了算法的特性,如有穷性、确定性和效率度量,特别是时间复杂度的计算方法,以及大O表示法的规则。
摘要由CSDN通过智能技术生成

数据结构

基本概念

  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. 函数递归调用带来的内存开销(函数调用栈)—》递归调用深度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值