温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据结构与算法(一)基础概念

发布时间:2020-08-17 10:11:04 来源:网络 阅读:583 作者:溜达7 栏目:开发技术

基础概念

数据结构讨论的范畴,算法、数据结构概念,算法和算法的度量

算法讨论的范畴

算法:处理问题的策略。

数据结构:问题的数学模型(非数值计算)及其上的操作在计算机中的表示和实现。数值计算使用计算数学。

数据结构

算法:处理问题的策略。

数据结构:带结构的数据元素的集合。

数据

可输入到计算机中且被计算机处理的符号集合。

数据元素

数据中的一个个体,数据结构中讨论的基本单位。

数据项

数据结构中讨论的最小单位。数据元素是数据项的集合。

数据的逻辑结构

线性结构、树形结构、图状结构、集合结构

数据结构形式定义

数据结构=(D,S),D是数据元素的有限集,S是D上关系的有限集。

数据的存储结构

逻辑结构在存储器中的映像。

数据元素的映像方法

bit串。

关系的映像方法

顺序映像:以存储位置的相邻(或者一个固定间隔),表示后继关系。整个存储结构中只包含数据元素本身的信息。

链式映像:存储位置不确定,以附件信息(指针)表示后继关系。

数据类型

是一个值的集合和定义在此集合上一组操作的总称,也可以称为数据结构。

抽象数据类型(ADT)

一个数学模型以及定义在这个数学模型上的一组操作。

特点
数据抽象

强调实体的本质特征、所能完成的功能及与外部用户的接口(外界使用它的方法)。

数据封装

将实体外部特性与内部实现分离,并对外部用户隐藏内部实现细节。

描述方法

(D,S,P),D是数据对象,S是D上的关系集,P是对D的基本操作。

算法和算法的度量

算法

解决某种问题而确定的一个有限长的操作序列。

特征

有穷性:对于任意一组合法的输入值,在执行有穷步骤后,一定能结束。即每个步骤都可以在有限时间内完成。

确定性:对于每种情况下所应执行的操作,在算法中都有确切规定,使算法的执行者或者阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。

可行性:算法中所有步骤必须足够基本,都可以通过已实现的基本操作运算有限次实现。

有输入:算法加工的对象,可以在算法执行过程中输入,也可以隐含在算法中。

有输出:是一组与“输入”有确定关系的量值,是算法进行信息加工后的结果,这种确定关系为算法的功能。

算法设计原则
正确性
  • 首先,算法应满足以特定的“规格说明”方式给出的需求。,其次对算法是否“正确”的理解有以下四个层次,通常以c作为衡量算法合格的标准。

  • a.程序中不含有语法错误。

  • b.程序对于几组输入能够得出满足要求的结果。

  • c.对于精心选择的、典型、苛刻且带有刁难性的几组输入数据,能够得出满足要求的结果。

  • d.对于一切合法的输入都能得出满足需求的结果。

可读性

便于理解和调试。

健壮性

当输入数据非法时,算法应作出恰当反映或进行相应处理,而不是产生莫名其妙的结果。并且,处理“出错”的方法不应是中断程序,而是返回一个表示错误或错误性质的结果,以便高层调用处理。

高效率与低存储需求

效率指算法的执行时间,存储需求指执行过程中所需最大存储空间,两者与问题规模有关。

算法效率的衡量和准则
事后统计

缺点:1-必须执行程序。2-其他因素掩盖算法本质。

事前分析估算
时间相关因素

1-算法选用的策略

2-问题的规模

3-编写程序的语言

4-编译的机器代码的质量

5-计算机执行指令的速度

算法执行时间增长率和f(n)增长率相同(n-工作量)。

T(n)=O(f(n)),T(n)为算法的时间渐进复杂度。

算法=控制结构+原操作(固有数据类型的操作)。

算法的执行时间=Σ原操作的执行次数*原操作的执行时间。算法的执行时间与原操作执行次数之和成正比。

算法的空间复杂度,S(n)=O(g(n)),随着问题规模增大,算法运行所需存储的增长率与g(n)相同。

输入数据所占空间。

程序本身所占空间。

辅助变量所占空间。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI