.算法和数据结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.算法和数据结构

5.2 算法和数据结构 算法的定义 一组明确的可执行步骤的有序集合 例:输入两个正整数m和n(mn),求它们的最大公约数,记为god(m,n)。 根据欧几里德算法: 若 r 是 m ÷n 的余数, 则 gcd(m,n) = gcd(n,r) 适合计算机实现的算法(辗转相除法): 如 m=28,n=8, 则god(28,8)= god(8,4)= god(4,0)=4 算法描述 自然语言: 输入m,n (mn); 求m/n的余数 r; 如果r≠0则将n放入m,r放入n,转第2步继续;如果r=0则转第4步 输出最大公约数n。 流程图: 算法举例 输入十个数,找出最大数输出(递推法 ) 求Fibonacci数列流程图 猴子吃桃子算法的流程图 减半递推(迭代)法 设方程 f(x)=0在区间[x1,x2]上有一个实根,且f(x1)与f(x2)异号,用二分法求该方程在区间[x1,x2]上的实根。 减半递推过程: 求中点:x3=1/2(x1+x2) 判 f(x3)是否接近0? 若接近0,x3即为所求根 若不接近0,则将原区间减半 舍弃与f(x3)同号者:x2=x3 再求中点:x4=1/2(x1+x3) 如此重复得:x1,x2,…,xn-1,xn 当xn与xn-1之差小于给定的误差En时,xn即为近似解 迭代关系: x3=(x1+x2)/2 舍弃与f(x3)同号者:f(x3)*f(x2)0 : x2=x3; /*为下一次迭代做准备*/ f(x3)*f(x1)0 : x1=x3; 流程图 For i=1 to n-1 do { y=y+1; /* ① */ For j=0 to 2n do x=x+1; /* ② */ } 语句①的执行次数为:n-1, 语句②的执行次数为:(n-1)(2n+1)=2n2-n-1 该程序段的时间复杂度为: T(n)=O(n-1+2n2-n-1)=O(n2) 数据结构研究的内容 数据集合中,各种数据元素之间所固有的逻辑关系,即数据的逻辑结构。 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。 对各种数据结构进行的运算,其中常用的有检索、插入、删除、排序等。 数据的逻辑结构--反映数据元素之间的逻辑关系 一个数据结构可以表示为一个二元组: B =(D,R) D是数据元素的集合, R是定义在D上的二元关系的集合,反映了D中各元素之间的前驱与后继关系 二个要素 数据元素的集合D D上的二元关系R 举例 例1. 一年四季的数据结构。 ???????表示为:Season =(D,R) ??????D =(春,夏,秋,冬) ??????R =((春,夏),(夏,秋),(秋,冬)) 例2. n维向量X=(x1,x2,… …,xn)的数据结构。 ?????表示为:X =(D,R) ???D =(x1, x2,… …,xn) R =((x1,x2),(x2,x3)…,(xn-1,xn)) 例3. 家庭成员的数据结构。 ??????表示为:Family =(D,R) ????????????? D =(父亲,儿子,女儿) ????????????? R =((父亲,儿子),(父亲,女儿)) 根据数据结构中各数据元素之间的前驱与后继关系的复杂程度,逻辑上可以把数据结构分为线性结构和非线性结构。 一个非空的线性数据结构应满足两个条件: 有且仅有一个根结点(没有前驱的结点); 每一个结点最多只有一个前驱,一个后继; 如果一个数据结构不是线性的,则称为非线性结构(树形结构、图形结构或网状结构)。 例1、例2属于线性结构,例3为非线性结构。 线性链表的物理存储状态 线性链表的逻辑存储状态 单链表的结点删除 算法:  (1)找到ai-1的存储位置p(因为在单链表中结点ai的存储地址是在其直接前趋结点ai-1的指针域中) (2)找到ai的存储位置r (3)令p的指针域指向ai的直接后继结点(即把ai从链上摘下) (4)释放结点ai的空间,将其归还给存储池。 二叉树的五种基本形态: 两类特殊的二叉树: 满二叉树:指的是深度为k且含有2k-1个结点的二叉树。 完全二叉树:树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。 二叉树的顺序存储结构的优缺点  ① 对完全二叉树而言,顺序存储结构既简单又节省存储空间。  ② 一般的二叉树采用顺序存储结构时,虽然简单,但易造成存储

文档评论(0)

maxmin + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档