算法数数据结构-第3版-绪论课后答案_第1页
算法数数据结构-第3版-绪论课后答案_第2页
算法数数据结构-第3版-绪论课后答案_第3页
算法数数据结构-第3版-绪论课后答案_第4页
算法数数据结构-第3版-绪论课后答案_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法与数据结构C语言描述(第三版)第1章绪论1、解释以下概念:逻辑结构,存储结构,操作,数据结构,数据结构的表示,数据结构的实现,抽象数据类型,算法,算法的时间代价,算法的空间代价,大O表示法,贪心法,回溯法,分治法。答:逻辑结构(数学模型):=1\*GB3①指数据元素之间地逻辑关系。=2\*GB3②具体解释:指数学模型(集合,表,树,和图)之间的关系。=3\*GB3③描述方式:B=<K,R>,K是节点的有穷集合,R是K上的一个关系。存储结构(物理结构):数据的逻辑结构在计算机存储器中的映射(或表示)。(3)操作(行为):指抽象数据类型关心的的各种行为在不同的存储结构上的具体算法(或程序)。(4)数据结构:=1\*GB3①传统观念:数据结构是计算机中表示(存储)的、具有一定逻辑关系和行为特征的一组数据。②根据面向对象的观点:数据结构是抽象数据类型的物理实现。(5)数据结构的表示:(6)数据结构的实现:(7)抽象数据类型:(8)算法:是由有穷规则构成(为解决某一类问题)的运算序列。-算法可以有若干输入(初始值或条件)。-算法通常又有若干个输出(计算结果)。-算法应该具有有穷性。一个算法必须在执行了有穷步之后结束。-算法应该具有确定性。算法的每一步,必须有确切的定义。-算法应该有可行性。算法中国的每个动作,原则上都是能够有机器或人准确完成的。(9)算法的时间代价:(10)算法的空间代价:(11)大O表示法:-更关注算法复杂性的量级。-若存在正常数c和n0,当问题的规模n>=c*f(n),则说改算法的时间(或空间)代价为O(f(n))(12)贪心法: 当追求的目标是一个问题的最优解是,设法把整个问题的求解工作分成若干步来完成。在其中的每一个阶段都选择都选择从局部来看是最优的方案,以期望通过各个阶段的局部最有选择达到整体的最优。例如:着色问题:先用一种颜色尽可能多的节点上色,然后用另一种颜色在为着色节点中尽可能多的节点上色,如此反复直到所有节点都着色为止;(13)回溯法有一些问题,需要通过彻底搜索所有的情况寻找一个满足某些预定条件的最优解。由于彻底搜索的运算量非常大,所以采用一步一步向前试探,当有多重选择是可以任意选择一种,只要目前可行就继续向前,一旦发现失败或问题就后退,回到上一步重新选择,借助于回溯技巧和中间增加判断,这样常常可以大大地减少搜索的时间。-常见的迷宫问题以及八皇后问题都可以用回溯方法来解决。(14)分治法把一个规模较大的问题分成两个或多个较小的与原问题相似的子问题。首先对子问题进行求解,然后设法把子问题进行求解,即对问题分而治之。如果一个问题的规模仍然比较大,不能很容易的求解,就可以对这个子问题重复地应用分治策略。-二分法检索就是用分治法策略的典型例子。2、理解以下关系:答:算法与数据结构的关系: =1\*GB3①算法+数据结构=程序 =2\*GB3②程序就是在数据的某些特定的结构和表示的基础上对于算法的描述。 =3\*GB3③算法与数据结构是程序设计中相辅相成、不可分割的两个方面。数据结构与抽象数据类型的关系:算法和数据结构问题的求解关系:3.为整数定义一个抽象数据类型。它包含整数的常见运算,每一个运算对应一个函数,由它的输入/输出定义。4.什么叫数据结构?试举一个简单的例子说明。答:=1\*GB3①传统的概念:数据结构是计算机中表示(存储)的、具有一定逻辑关系和行为特征的一组数据。=2\*GB3②根据面向对象的观点:数据结构是抽象的数据类型的物理实现。5.从逻辑上可以把数据结构分成哪几类?答:(1)给定B=<K,R>,若<K1,K2>∈R,则称K1为K2的前驱,K2为K1的后继。没有前驱的结点为开始结点,没有后继结点为终端结点。(2)根据R的特点可以将数据结构分为以下三类:=1\*GB3①线性结构:K中每个结点最多只有一个前驱和一个后继;=2\*GB3②树形结构:K中每个结点做多有一个前驱,单可以有多个后继;=3\*GB3③复杂结构:K中节点的前驱、后继结点的个数都不做限制;=4\*GB3④集合结构:当R为空集时,K中结点间没有约束关系;7.将下列复杂度由小到大重新排序:A、2n B、n!C、n5 D、10000 E、n*log₂n【答】DECAB8.将下列复杂度由小到大重新排序:A.n*log2(n)   B.n + n2 + n3 C.24 D.n0.5【答】24<n0.5<n*log2(n)<n + n2 + n3 CDAB9.用大O表示法描述下列复杂度:A.5n5/2+n2/5  B.6*log2(n)+9n C.3n4+n*log2(n)      D.5n2+n3/2【答】A:O(n5/2) B:O(n) C:O(n4) D:O(n2)10.按照增长率从低到高的顺序排列以下表达式:4n2,log3n,3n,20n,2000,z,n2/3。又n!应排在第几位?【答】按照增长率从低到高依次为:2000,log3n,log2n,n2/3,20n,4n2,3nn!:增长率比她们中的每一个要打,应该排在最后一位。算法分析题1.计算下列程序片段的时间代价:inti=1;while(i<=n){printf("i=%d\n",i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环的n,共执行n次。所以该程序的总时间代价为:T(n)=1+n+(n+n)=1+3n=O(n)2.计算下列程序片段的时间代价: inti=1; while(i<=n){ intj=1; while(j<=n){ intk=1; while(k<=n){ printf("i=%d,j=%d,k=%d\n",i,j,k); k=k+1; } j=j+1; } i=i+1; }【答】循环变量i从1增加到n,最外层循环体执行n次;循环变量j从1增加到n,中间层循环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论