CM1 : 程序设计与算法导论

程序设计与算法基础 II

CM1 : 程序设计与算法导论

  • 迷宫问题

    • 问题描述
      从出发点(入口)开始,在给定的空间中,沿可行的路径进行探索,直到达到目标(出口)。在资源勘探中,在战争或游戏中,都会有类似的情景,在给定的空间中,如森林、山洞、沙漠等,搜索特定目标,如出路、人或物等。这类问题都可以归结为迷宫问题。
    • 问题简化
      • 为了使探索方向一致,可在原来的迷宫地图四周都拓展一个点,值全部置为1,表示是墙。
      • 用增量数组DeltaXY表示探索的方向
    • 如何保留到达各点的坐标和到达时的探索方向?
      • 选用数据结构——,栈内元素为行号x、列号y、前点至这点的方向d组成的三元组(x,y,d)
    • 如何避免兜死圈?
      • 设置标志数组mark[m][n],已探索过的点不需要再进入
    • 小结
      • 数据结构有两大用途:
        • 用于存放要处理的数据,如迷宫地图;
        • 用于实现算法策略,如迷宫例子中探索方向增量数组、回溯的栈、避免重复走的标志数组或特殊标记
  • 数据结构

    • 带结构的数据元素的集合

    • 数据结构由一个四元组来表示: Data_Structure = (D, L, S, O) 其中:

      • D (data) 是**数据元素的有限集,**是存储和操作的对象

      • L (logical structure)是数据元素集合D中数据元素之间客观存在的关系的有限集,称为逻辑结构

      • S (storage structure)是数据元素集合D和数据元素之间的关系集合L在计算机中的存储表示,称为存储结构或物理结构

      • O (operation) 是在数据元素集合D.上规定的一组操作

        简言之,数据结构包含:数据元素、数据元素间的逻辑关系、逻辑关系在计算机中的存储表示、以及所规定的操作四部分

    • 抽象数据类型(Abstract Data Type,ADT)

      • ADT一般包含数据元素、数据元素之间关系及操作三要
        (D, R, O),其中:
        • D是数据元素集
        • R是D上的关系集合
        • O是对D的基本操作集
  • 算法

    • 算法是求解特定问题步骤的有限序列。算法由步骤组成,每个步骤表示一个操作或任务,步骤序列是对问题求解过程的描述,按照步骤顺序,完成步骤所规定任务,就可以求解特定问题
    • 算法可以用一个三元组来描述: A=(S, D, R)
      • S是步骤的有限集合
      • D是算法求解问题所涉及的数据元素集合,是算法的操作或处理的对象,包括可能的输入和算法产生的输出
      • R是步骤间的关系集合,由-一些控制结构组成
    • 算法具有有穷性确定性可行性输入与输出特性
    • 算法设计要求:正确性、可读性、健壮性、高效性、灵活性、可重用性、自适应性
  • 算法分析

    • 时间复杂度
      • 渐进分析、大O表示法
    • 空间复杂度
      • 指令空间、数据空间、环境栈空间

你可能感兴趣的:(程序设计与算法基础,数据结构,算法,迷宫)