第4章 数据结构与算法 习题与答案

合集下载

数据结构第四章考试题库(含答案)

数据结构第四章考试题库(含答案)

第四章串一、选择题1.下面关于串的的叙述中,哪一个是不正确的()【北方交通大学 2001 一、5(2分)】A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储2 若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index (S2,‘8’),length(S2)))其结果为()【北方交通大学 1999 一、5 (25/7分)】A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###2345E.ABC###G1234 F.ABCD###1234 G.ABC###012343.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()A.求子串 B.联接 C.匹配 D.求串长【北京邮电大学 2000 二、4(20/8分)】【西安电子科技大学 1996 一、1 (2分)】4.已知串S=‘aaab’,其Next数组值为()。

【西安电子科技大学 1996 一、7 (2分)】A.0123 B.1123 C.1231 D.12115.串‘ababaaababaa’的next数组为()。

【中山大学 1999 一、7】A.0 B.012121111212 C.0 D.06.字符串‘ababaabab’的nextval 为()A.(0,1,0,1,04,1,0,1) B.(0,1,0,1,0,2,1,0,1)C.(0,1,0,1,0,0,0,1,1) D.(0,1,0,1,0,1,0,1,1 )【北京邮电大学 1999 一、1(2分)】7.模式串t=‘abcaabbcabcaabdab’,该模式串的next数组的值为(),nextval 数组的值为()。

数据结构答案第4章

数据结构答案第4章

第 4 章广义线性表——多维数组和广义表2005-07-14第 4 章广义线性表——多维数组和广义表课后习题讲解1. 填空⑴数组通常只有两种运算:()和(),这决定了数组通常采用()结构来实现存储。

【解答】存取,修改,顺序存储【分析】数组是一个具有固定格式和数量的数据集合,在数组上一般不能做插入、删除元素的操作。

除了初始化和销毁之外,在数组中通常只有存取和修改两种操作。

⑵二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A[10][5]的存储地址是1000,则元素A[15][10]的存储地址是()。

【解答】1140【分析】数组A中每行共有6个元素,元素A[15][10]的前面共存储了(15-10)×6+5个元素,每个元素占4个存储单元,所以,其存储地址是1000+140=1140。

⑶设有一个10阶的对称矩阵A采用压缩存储,A[0][0]为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A[8][5]的存储地址为()。

【解答】d+41【分析】元素A[8][5]的前面共存储了(1+2+…+8)+5=41个元素。

⑷稀疏矩阵一般压缩存储方法有两种,分别是()和()。

【解答】三元组顺序表,十字链表⑸广义表((a), (((b),c)),(d))的长度是(),深度是(),表头是(),表尾是()。

【解答】3,4,(a),((((b),c)),(d))⑹已知广义表LS=(a,(b,c,d),e),用Head和Tail函数取出LS中原子b的运算是()。

【解答】Head(Head(Tail(LS)))2. 选择题⑴二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9,则存放A至少需要()个字节,A的第8列和第5行共占()个字节,若A按行优先方式存储,元素A[8][5]的起始地址与当A按列优先方式存储时的()元素的起始地址一致。

数据结构与算法分析习题与参考答案

数据结构与算法分析习题与参考答案

大学《数据结构与算法分析》课程习题及参考答案模拟试卷一一、单选题(每题 2 分,共20分)1.以下数据结构中哪一个是线性结构?( )A. 有向图B. 队列C. 线索二叉树D. B树2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下( )语句序列。

A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q;3.以下哪一个不是队列的基本运算?()A. 在队列第i个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.14B.5C.6D.85.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。

以下6-8题基于图1。

6.该二叉树结点的前序遍历的序列为( )。

A.E、G、F、A、C、D、BB.E、A、G、C、F、B、DC.E、A、C、B、D、G、FD.E、G、A、C、D、F、B7.该二叉树结点的中序遍历的序列为( )。

A. A、B、C、D、E、G、FB. E、A、G、C、F、B、DC. E、A、C、B、D、G、FE.B、D、C、A、F、G、E8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、DD. E、G、A、C、D、F、B9.下面关于图的存储的叙述中正确的是( )。

A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A. a,g,h,m,n,p,q,x,zB. a,g,m,h,q,n,p,x,zC. g,m,q,a,n,p,x,h,zD. h,g,m,p,a,n,q,x,z二、填空题(每空1分,共26分)1.数据的物理结构被分为_________、________、__________和___________四种。

计算机导论 第四章 算法与数据结构期末测试习题与答案

计算机导论 第四章 算法与数据结构期末测试习题与答案

1、算法的时间复杂度是指()。

A.算法执行过程中所需要的基本运算次数B.执行算法程序所需要的时间C.算法程序的长度D.算法程序中的指令条数正确答案:A2、算法的空间复杂度是指()。

A.算法程序的长度B.算法程序所占的存储空间C.算法执行过程中所需要的存储空间D.算法程序中的指令条数正确答案:C3、线性表采用链式存储的优点是()。

A.花费的存储空间较顺序储存少B.数据元素的物理顺序与逻辑顺序相同C.便于随机存取D.便于插入和删除操作正确答案:D4、下列叙述中正确的是()。

A.二叉树是线性结构B.线性链表是非线性结构C.线性表是线性结构D.栈与队列是非线性结构5、数据结构中,与所使用的计算机无关的是数据的()。

A.逻辑结构B.物理结构C.物理和存储结构D.存储结构正确答案:A6、存储结构是指()。

A.逻辑结构在计算机中的表示B.数据所占的存储空间量C.存储在外存中的数据D.数据在计算机中的顺序存储方式正确答案:A7、下列关于队列的叙述中,正确的是()。

A.队列是先进后出B.队列是先进先出C.在队列中只能插入数据D.在队列中只能删除数据正确答案:B8、下列关于栈的叙述中,正确的是()。

A.栈只能采用顺序存储B.栈可以采用链式存储,采用链式存储时不会产生栈溢出现象。

C.在栈中只能删除数据D.在栈中只能插入数据9、对长度为n的线性表进行顺序查找,查找成功时,最坏情况下所需要的比较次数为()。

A.n/2B.(n+1)/2C.n+lD.n正确答案:D10、下列叙述中,正确的是()。

A.以上三种说法都不对B.算法就是程序C.设计算法时只需要考虑结果的可靠性D.设计算法时只需要考虑数据结构的设计正确答案:A二、多选题1、如果进栈的顺序为e1,e2,e3,e4,则可能的出栈序列是()。

A.e3,e1,e4,e2B.e4,e3,e2,e1C.e1,e2,e3,e4D.e2,e4,e3,e1正确答案:B、C、D2、已知二叉树后序编历序列是dabec,中续遍历序列是debac,不是其前序编历序列是()。

数据结构答案第4章

数据结构答案第4章
【解答】设稀疏矩阵为m行n列,如果采用二维数组存储,其空间复杂度为O(m×n);因为要将所有的矩阵元素累加起来,所以,需要用一个两层的嵌套循环,其时间复杂度亦为O(m×n)。如果采用三元组顺序表进行压缩存储,假设矩阵中有t个非零元素,其空间复杂度为O(t),将所有的矩阵元素累加起来只需将三元组顺序表扫描一遍,其时间复杂度亦为O(t)。当t<<m×n时,采用三元组顺序表存储可获得较好的时、空性能。
⑴二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9,则存放A至少需要()个字节,A的第8列和第5行共占()个字节,若A按行优先方式存储,元素A[8][5]的起始地址与当A按列优先方式存储时的()元素的起始地址一致。
A 90 B 180 C 240 D 540 E 108 F 114 G 54
⑵二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A[10][5]的存储地址是1000,则元素A[15][10]的存储地址是()。
【解答】1140
【分析】数组A中每行共有6个元素,元素A[15][10]的前面共存储了(15-10)×6+5个元素,每个元素占4个存储单元,所以,其存储地址是1000+140=1140。
Head(Tail(Tail(Head(ST))))=奖金
⑵工资表ST的头尾表示法如图4-7所示。7.若在矩阵A中存在一个元素ai,j(0≤i≤n-1,0≤j≤m-1),该元素是第i行元素中最小值且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。假设以二维数组存储矩阵A,试设计一个求该矩阵所有马鞍点的算法,并分析最坏情况下的时间复杂度。
⑵因为k和i, j之间是一一对应的关系,k+1是当前非零元素的个数,整除即为其所在行号,取余表示当前行中第几个非零元素,加上前面零元素所在列数就是当前列号,即:

吉林省专升本数据结构习题及答案——第四章

吉林省专升本数据结构习题及答案——第四章

吉林省专升本考试数据结构分章习题及参考答案———选择题(第四章)1、多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为( )。

A、数组的元素处在行和列两个关系中B、数组的元素必须从左到右顺序排列C、数组的元素之间存在次序关系D、数组是多维结构,内存是一维结构2、串的长度是()A、串中不同字母的个数B、串中不同字符的个数C、串中所含字符的个数D、串中所含字符的个数,且大于03、串与普通的线性表相比较,它的特殊性体现在()。

A、顺序的存储结构B、链式存储结构C、数据元素是一个字符D、数据元素任意4、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1……n(n+1)/2]中,则在B中确定aij(i<j)的位置k的关系为( )。

A、i*(i-1)/2+jB、j*(j-1)/2+iC、i*(i+1)/2+jD、j*(i+1)/2+i5、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()。

A、60B、66C、18000D、336、若6行8列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储单元,则第5行第3列的元素(假定无第0行第0列)的地址是()。

A、 1086B、 1032C、 1068D、答案A,B,C都不对7、下面的说法中,不正确的是()A、数组是一种线性结构B、数组是一种定长的线性结构C、除了插入与删除操作外,数组的基本操作还有存取修改、检索和排序等D、数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作8、设有一个n*n的对称矩A,将其下三角部分按行存放在一维数组B中,而A[0][0]存放于B[0]中,那么第i行对角线元素A[i][i]存放于B中( ) 处。

A、(i+3)i/2B、(i+1)i/2C、(2n-i+1)i/2D、(2n-i-1)i/29、设模式T=“abcabc”,则该模式的next值为()A、{-1,0,0,1,2,3}B、{-1,0,0,0,1,2}C、{-1,0,0,1,1,2}D、{-1,0,0,0,2,3}10、下面()不属于特殊矩阵。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

数据结构试题第四章习题

数据结构试题第四章习题

习题一、单项选择题1.空串与空格字符组成的串的区别在于()。

A.没有区别B.两串的长度不相等C.两串的长度相等D.两串包含的字符不相同2.一个子串在包含它的主串中的位置是指()。

A.子串的最后那个字符在主串中的位置B.子串的最后那个字符在主串中首次出现的位置C.子串的第一个字符在主串中的位置D.子串的第一个字符在主串中首次出现的位置3.下面的说法中,只有()是正确的。

A.字符串的长度是指串中包含的字母的个数B.字符串的长度是指串中包含的不同字符的个数C.若T包含在S中,则T一定是S的一个子串D.一个字符串不能说是其自身的一个子串4.两个字符串相等的条件是()。

A.两串的长度相等B.两串包含的字符相同C.两串的长度相等,并且两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同5. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=()。

A.“ijing”B.“jing&”C.“ingNa”D.“ing&N”6. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=()。

A.2B.3C.4D.57. 若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanj ing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=()。

A.“Nanjing&Shanghai”B.“Nanjing&Nanjing”C.“ShanghaiNanjing”D.“Shanghai&Nanjing”8. 在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是()。

A.i>0B. i≤nC.1≤i≤nD.1≤i≤n+19.字符串采用结点大小为1的链表作为其存储结构,是指()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章习题(P111-113)一、复习题1、试述数据和数据结构的概念及其区别。

数据是对客观事物的符号表示,是信息的载体;数据结构则是指互相之间存在着一种或多种关系的数据元素的集合。

(P93)2、列出算法的五个重要特征并对其进行说明。

算法具有以下五个重要的特征:有穷性:一个算法必须保证执行有限步之后结束。

确切性:算法的每一步骤必须有确切的定义。

输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件。

输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。

没有输出的算法没有实际意义。

可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

(P95)3、算法的优劣用什么来衡量?试述如何设计出优秀的算法。

时间复杂度空间复杂度(P97-98)4、线性和非线性结构各包含哪些种类的数据结构?线性结构和非线性结构各有什么特点?线性结构用于描述一对一的相互关系,即结构中元素之间只有最基本的联系,线性结构的特点是逻辑结构简单。

所谓非线性结构是指,在该结构中至少存在一个数据元素,有两个或两个以上的直接前驱(或直接后继)元素。

树型和图型结构就是其中十分重要的非线性结构,可以用来描述客观世界中广泛存在的层次结构和网状结构的关系。

(P99-105)5、简述树与二叉树的区别;简述树与图的区别。

树用来描述层次结构,是一对多或多对一的关系;二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。

二叉树是有序的,即若将其左、右子树颠倒,就成为另一棵不同的二叉树。

图也称做网,是一种比树形结构更复杂的非线性结构。

在图中,任意两个节点之间都可能相关,即节点之间的邻接关系可以是任意的,图表示的多对多的关系。

(P102-P104)6、请举出遍历算法在实际中使用的例子。

提示:根据实际生活中需要逐个访问处理的情况举例。

7、编写一个算法,统计在一个输入字符串中各个不同字符出现的频度。

用适当的测试数据来验证这个算法。

提示:根据查找算法和串中求子串的算法,查找输入串中以单个字符形式的子串。

8、若对有n个元素的有序顺序表和无序顺序表进行顺序搜索,试就下列三种情况分别讨论两者在等搜索概率时的平均搜索长度是否相同?(1) 搜索失败;(2) 搜索成功,且表中只有一个关键码等于给定值k的对象;(3) 搜索成功,且表中有若干个关键码等于给定值k的对象,要求一次搜索找出所有对象。

提示:根据P106-109页的查找和排序算法分别进行分析9、顺序表的插入和删除要求仍然保持各个元素原来的次序。

设在等概率情形下,对有127个元素的顺序表进行插入,平均需要移动多少个元素?删除一个元素,又平均需要移动多少个元素?提示:根据P99线性表的定义进行分析。

题义是进行插入和删除后仍然保持线性表的结构特性。

10、递归的含义是什么?递归是指算法在过程中调用自身作为子算法的一种设计方法。

(P109-110)二、练习题(一)填空题1、链表通常是由一个个节点构成的,每个节点的机构是由_________域和__________域构成。

数据域指针域(P99)2、树内节点度的最大值,即树中下级节点最多的节点的下级节点个数可被称为___________。

度的最大值(P102)3、数组在存储和处理时是以第一个元素为起点,沿着行或者列的方向逐个进行。

如果是先沿着列的方向进行,一列完成再进行下一列,则称为____________;如果先沿着行的方向进行,一行进行完毕再进行下一行,则称为____________。

列序为主或列序优先行序为主或行序优先(P102)(二)选择题1、数据结构是指互相之间存在着一种或多种关系的数据元素的集合,基本的数据结构通常是__。

A、集合结构B、线性结构C、树型结构D、图形结构ABCD (P93-94)2、算法的基本结构有_________。

A、顺序结构B、分支结构C、循环结构D、跳跃结构ABC(P96-97)3、算法的实现方式有___________。

A 、子程序B、函数C、模块 D、过程ABCD (P98)4、下列属于非线性结构的有___________。

A 、树B 、图C 、网D、串ABC(P102-105)5、排序的方法有__________。

A 、插入排序B、选择排序 C 、冒泡排序D、快速排序ABCD (P106-108)6、递归方法一般用来解决哪些类型的问题?A 、数据的定义是按递归定义的B、问题解法按递归算法实现C 、数据的结构形式是按递归定义的D、问题的复杂程度超过一般算法能够解决的ABCD (P109)7、下面叙述正确的是______。

A、算法的执行效率与数据的存储结构无关B、算法的空间复杂度是指算法程序中指令(或语句)的条数C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、以上三种描述都不对C (P95)8、以下数据结构中不属于线性数据结构的是______。

A、队列B、线性表C、二叉树D、栈C(P99-104)9、算法的时间复杂度是指______。

A、执行算法程序所需要的时间B、算法程序的长度C、算法执行过程中所需要的基本运算次数D、算法程序中的指令条数A(P98)10、下列叙述中正确的是______。

A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构A(P99)11、设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。

A、349B、350C、255D、351B(P104)12、算法的空间复杂度是指______。

A、算法程序的长度B、算法程序中的指令条数C、算法程序所占的存储空间D、算法执行过程中所需要的存储空间D(P98)13、用树形结构来表示实体之间联系的模型称为______。

A、关系模型B、层次模型C、网状模型D、数据模型B(P102)14、算法一般都可以用哪几种控制结构组合而成______。

A、循环、分支、递归B、顺序、循环、嵌套C、循环、递归、选择D、顺序、选择、循环D(P97)15、数据的存储结构是指______。

A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表示C、数据在计算机中的顺序存储方式D、存储在外存中的数据B(P94)16、在下列选项中,哪个不是一个算法一般应该具有的基本特征______。

A、确定性B、可行性C、无穷性D、拥有足够的情报C(P95)17、在计算机中,算法是指______。

A、查询方法B、加工方法C、解题方案的准确而完整的描述D、排序方法C(P95)18、数据处理的最小单位是______A、数据B、数据元素C、数据项D、数据结构C(P93)19、算法分析的目的是______。

A、找出数据结构的合理性B、找出算法中输入和输出之间的关系C、分析算法的易懂性和可靠性D、分析算法的效率以求改进D(P98)20、用链表表示线性表的优点是______。

A、便于插入和删除操作B、数据元素的物理顺序与逻辑顺序相同C、花费的存储空间较顺序存储少D、便于随机存取A B D(P99-100)21、栈和队列的共同点是______A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点C(P100-101)(三)讨论题1、试比较快速排序和气泡排序方法。

起泡排序首先将第一个记录的关键字与第二个记录的关键字进行比较,若与需要的顺序不符,则将两个记录交换,然后比较第二个记录和第三个记录的关键字。

依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。

起泡排序在排序过程中需进行n-1趟排序,并作等数量级的记录移动。

快速排序是对起泡排序的一种改进。

其基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。

在所有同数量级的此类(先进的)排序方法中,就平均时间而言,快速排序是目前被认为是最实用的一种排序方法。

(P107-108)2、试述递归方法的优缺点。

递归是指算法在过程中调用自身作为子算法的一种设计方法。

递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

由于递归引起一系列的函数调用,并且可能会有一系列的重复计算,递归算法的执行效率相对较低。

在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。

递归次数过多容易造成栈溢出。

(P109)3、某石油公司计划建造一条由东向西的主输油管道。

该管道要穿过一个有n口油井的油田。

从每口油井都要有一条输油管道沿最短路径(或南或北)与主管道相连。

如果给定n口油井的位置,即它们的x坐标和y坐标,应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和的最小位置?[提示:选择合适的数据结构对问题进行描述]解题提示:可以使用微积分中的求最大、最小值的算法4、考虑对数组A中的n个数的排序:开始时先找出A的最小元素并放在另一个数组B的第一个位置上。

然后找出A中次最小元素并放在B的第二个位置上,对A中余下的元素继续这个过程。

这个算法称为选择排序,请写出这个算法在其最佳和最坏情况下的时间代价。

解题提示:可以先对含有3个数的数组进行排序,计算时间代价,再依次对含有多个数的数组进行分析,得出最终结果。

5、分别在数组和链表中进行搜索和排序,试比较哪一种操作更简单,说明理由。

解题提示:结合文中的线形结构的存储方法,结合存储方法选择P106-109页的几种排序算法进行比较。

相关文档
最新文档