关于数据结构理论以及实践学习——基本术语以及算法分析

一、知识点内容规划

1.1 基本概念术语理解

  1. 数据(Data)对客观事物的符号表示,在计算机科学中指所有能输入到计算机中并被计算机处理的符号总称。即包括文字、图像、声音、字符串、预编程序等。
  2. 数据元素(Data element)数据的基本单位,在计算机中通常作为一个整体进行考虑和处理;一个数据元素可以由若干个数据项(data item)组成,数据项是不可分割的最小单位。
  3. 数据对象(Data object)性质相同的数据元素的集合,是数据的一个子集。
  4. 数据结构(Data structure)是相互之间存在一种或多种特定关系的数据元素的集合。即有以下几种基本关系:
    (1)集合(2)线性结构(3)树形结构(4)图装结构或网装结构
    数据结构的形式定义:
Data_Structure = (D, S) //其中D是数据元素的有限集,S是D上关系的有限集

数据元素之间的关系:顺序映像非顺序映像由此所得两种存储结构:顺序存储结构链式存储结构
以下为存储结构示意图:此图来源为《数据结构》严蔚敏 版【6】

1.2 存储结构

  1. 数据类型(Data type)是和数据结构密切相关的一个基本概念,最早出现在高级程序语言中用以刻画操作对象的特征。分类:原子类型结构类型
  2. 抽象数类型(Abstract Data Type,simple sign: ADT)指一个数学模型以及定义在该模型上的一组操作。
    百度脑图

1.3 算法和算法分析

1.3.1 算法

算法(algorithm)是对于特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令的有限序列表示一个或者多个操作。
重要特性如下:
(1)有穷性 (2)确定性(3)可行性(4)输入(5)输出

1.3.2 算法设计要求

一、正确性
基本的四个方面:

  1. 没有语法错误
  2. 对于 合法的数据输入 能够产生满足要求的输出
  3. 对于 非法的数据输入 能够得出满足规格说明的结果
  4. 对于 特殊的数据输入 能够得出满足规格说明的结果
    其中
    非法的数据:比如输入的时间为负数,输入的距离为负数
    特殊的数据:比如输入的除数为0

二、可读性

  • 设计出来的算法要便于阅读、理解和交流。

三、健壮性

  • 健壮性是指软件对于规范要求以外的输入情况的处理能力。所谓健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。即所谓的高手写的程序不容易死。

四、效率与低存储需求

  • 效率就可比喻为算法执行时间,专业名词表示为 时间复杂度空间复杂度 ,即算法程序耗费的时间和占用的空间少。
1.3.3 算法效率度量

(1)事后统计

  • 此方法需要将程序完整的运行,利用计算机内部的计时功能,利用统计的方法计算出程序的运行速度以此衡量算法的效率,此方法一般不采用,其一需要依靠算法编制程序;其二其时间统计量依赖于计算机的硬件和软件,容易受环境因素影响。

(2)事前分析估计
一个算法是由控制结构(顺序、分支、循环)和原操作(固有数据类型的操作)所构成,算法的时间效率也取决于二者之和。
度量量为:

  • 时间复杂度 T(n)
  • 空间复杂度 S(n)
    外附:一些基本函数规律
    f ( x ) = O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( 2 n ) < O ( n ! ) f(x)=O(1)< O(log_2n)<O(n)<O(nlog_2n)<O(n^2)<O(2^n)<O(n!) f(x)=O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(2n)<O(n!)
    参考书籍:

严蔚敏 吴伟民 版. 数据结构(第二版)[M]. 1992.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值