数据结构与算法概述

数据结构与算法概述

计算机求解问题的一般步骤

  1. 问题抽象出数学模型
  2. 问题所涉及的数据量大小及数据之间的关系
  3. 如何在计算机中存储数据及体现数据之间的关系
  4. 处理问题时需要对数据进行和种运算。
  5. 所编写的书城的性能是否良好。

抽象数据类型

ADT <抽象数据类型名>{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
} ADT<抽象数据类型名>
-其中数据对象和数据关系的定义用伪码描述。
-基本操作的定义是
<基本操作名>(<参数表>)
初始化条件:<初始条件描述>
操作结果:<操作结构描述>
- 初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失败,返回相应的出错信息。
- 操作结果:描述操作正常完成之后,数据结构的变化状况和应返回的结果。

逻辑结构

  • 数据的逻辑结构
    • 线性结构
      • 一般线性表
      • 受限线性表
        • 栈和队列
      • 线性表推广
        • 数组
        • 广义表
    • 非线性结构
      • 集合
      • 树形结构
        • 一般树
        • 二叉树
      • 图状结构
        • 有向图
        • 无向图

物理存储结构

  • 顺序存储结构
  • 链式存储结构
  • 复合存储结构

数据操作

  • 建立(Create)一个数据结构
  • 消除(Destory)一个数据结构
  • 从一个数据结构中删除(Delete)一个数据元素
  • 把一个数据元素插入(Insert)到一格数据结构
  • 对一个数据结构进行访问(Access)
  • 对一个数据结构中的元素进行修改(Modify).
  • 对一个数据结构进行排序(Sort)
  • 对一个数据结构进行查找(Search).

复杂度分析

  • 算法五个特性
    • 有穷性
    • 确定性
    • 可行性
    • 输入
    • 输出
  • 算法设计的要求
    • 确定性
    • 可读性
    • 健壮性
    • 通用性
    • 效率与存储量需求
  • 算法效率的度量
    • 相关因素
      • 依据算法选用何种策略;
      • 问题的规模
      • 程序设计语言
      • 编译程序所产生的机器代码的质量
      • 机器执行指令的速度;
    • 时间复杂度
      • O(1):常量时间阶
      • O(n):线性时间阶
      • O(logn):对数时间阶
      • O(nlogn):线性对数时间阶
      • O(n^k):k次方时间阶
    • 空间复杂度 S(n)=O(f(n))

总结:

  • 计算机求解问题的一般步骤中,模型抽象和规模分析,是为了能够确定逻辑结构和存储结构,以及进一步确定需要的运算,然后分析数据类型的复杂度。线性表和树可由顺序存储结构和链式存储结构实现,图可由复合存储结构实现。学习一种算法可先确定其抽象数据结构及ADT,在对其复杂度进行分析。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值