第一周 绪论

第一周 绪论

第一讲 数据结构总览
  • 数据结构课程的内容

    • 各种数据的逻辑结构描述
    • 各种数据的存储结构表示
    • 各种数据结构的运算定义
    • 设计实现运算的算法
    • 分析算法的效率
  • 数据结构在计算机课程体系中的地位

    • 数据结构在计算机课程体系中的地位
  • 数据结构与程序设计类课程的关系

    • 程序设计语言 - 基本编程
    • 数据结构 - 以数据结构为中心的算法设计-基本算法设计方法
    • 算法设计与分析 - 通过算法设计-算法设计方法学
第二讲 什么是数据结构
  • 数据结构中的几个概念

    • 数据:所有能够输入到计算机中,且能被计算机处理的符号的集合
    • 数据元素:是数据(集合)中的一个“个体”,他是数据的基本单位。
    • 数据项:数据线是用来描述数据元素的,他是数据的最小单位
    • 数据对象:具有相同性质的若干个数据元素的集合,如整数数据对象是所有整数的集合
  • 一个数据结构的构成

    • 逻辑结构
    • 存储结构
      • 直接映射
        • 所有元素占用一整块内存空间
        • 逻辑上相邻的元素,物理上也相邻
      • 链式存储
        • 一个逻辑元素用一个节点存储,每个节点单独分配,所有节点的地址不一定是连续的
        • 用指针来表示逻辑关系
    • 数据运算
      • 运算描述
      • 运算实现
    数据结构求解问题的过程
    • 逻辑结构类型

      1. 集合
        元素之间关系:无

        特点:数据元素之间处理“属于同一个集合”的关系外,别无其他逻辑关系。是最松散的,不受任何制约的关系

      2. 线性结构
        元素之间关系:一对一
        特点:开始元素和终端元素都是唯一的,除此之外,其他元素都有且仅有一个前趋元素和一个后继元素

      3. 树形结构
        元素之间关系:一对多
        特点:开始元素唯一,终端元素不唯一。除终端元素外,每个元素有一个或多个后续元素;除开始元素外,每个元素有且仅有一个前趋元素

      4. 图形结构
        元素之间关系:多对多

        特点:所有元素都可能有多个前趋元素和多个后继元素

    • 存储结构类型

      • 顺序存储结构
      • 链式存储结构
      • 索引存储结构
      • 哈希(散列)存储结构
    • 数据类型和抽象数据类型

      • 数据类型:是一个值的集合和定义在此集合上的一组操作的总称
      • 抽象数据类型:指从求解问题的数学模型中抽象出来的数据逻辑结构和运算(抽象运算),二不考虑计算机的具体实现
第四讲 算法及其描述
  • 算法:数据元素之间的关系有逻辑关系和物理关系,对应的运算有基于逻辑结构的运算描述和基于存储结构的运算实现。基于存储结构的运算实现的步骤或过程称为算法

  • 算法的5个重要的特性

    1. 有穷性:在有穷步之后结束,算法能够停机
    2. 确定性:无二义性
    3. 可行性:可通过基本运算有限次执行来实现,也就是算法中每一个动作都能够被机械的运行
    4. 可输入
    5. 有输出
  • 算法描述
    算法描述

第五讲 算法分析基础
  • 分析算法占用的资源

    • CPU时间 - 时间性能分析
    • 内存空间 - 空间性能分析
  • 算法分析目的:分析算法的时空效率以便改进算法

  • 算法的时间复杂度分析

    • 一个算法是由控制结构(顺序、分支和循环三种)和元操作(指固有数据类型的操作,如+、-、*、/、++、–等)构成的。算法执行时间取决于两者的综合效果。
  • 算法分析方式:

    • 事后分析统计方法:编写算法对应程序,统计其执行时间
    • 事前估算分析方法:认为算法执行时间是问题规模n的函数
  • 分析算法的执行时间

    • 分析算法的执行时间
  • “O”

    • O
  • 一个没有循环的算法的执行时间与问题规模n无关,记作O(1),也称为常数阶

  • 一个只有一重循环的算法的执行时间与问题规模n的增长呈先行增大关系,记作O(n),也称线性阶。

  • 时间复杂度

  • 时间复杂度比较

  • 简化的时间复杂度分析

    • 算法的基本操作一般是最深层循环内的原操作。
    • 算法执行时间大致 = 基本操作所需的时间 X 运算次数
  • 空间复杂度分析

    • 空间复杂度:用于度量一个算法在运行过程中临时占用的存储空间大小。
    • 若一个算法的空间复杂度为O(1),则称此算法为原地工作算法或就地工作算法。
第六讲 其他情况的算法分析
  • 最好、最坏和平均时间复杂度分析

    • 平均时间复杂度分析

    • 算法的最好、最坏时间复杂度

  • 变长时空分析与定长时空分析

    • 时空分析

    • 递归算法的时间复杂度分析

      递归-例题

      递归-解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值