浙大数据结构与算法离线作业

合集下载

高级程序设计JAVA离线作业(选)

高级程序设计JAVA离线作业(选)

浙江大学远程教育学院《高级程序设计JA V A》课程作业(选做)姓名:王媛学号:717070032002年级:2017秋学习中心:余杭学习中心—————————————————————————————第一章1.简述面向过程问题求解和面向对象问题求解的异同。

两者都是运用计算机来解决一定问题而制作的软件程序。

1)中心思想不同。

前者是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。

后者是以具体的解题过程为研究和实现的主体2)核心组成不同。

数据结构、算法是面向过程问题求解的核心组成。

对象、类与实体是对象问题求解的核心组成。

3)解决方法不同。

前者将现实世界的问题抽象成计算机可以理解和处理的数据结构,后者是要让计算机逻辑来模拟现实世界的物理存在,让计算机世界向现实世界靠拢2.面向对象的程序设计方法有哪些优点?优点:1)可重用性,一个软件项目中所开发的模块,能够不仅限于在这个项目中使用,而且可以重复地使用在其他项目中,从而在多个不同的系统中发挥作用。

2)可扩展性,对现代应用软件提出的又一个重要要求,即要求应用软件能够很方便、容易地进行扩充和修改的范围不但涉及到软件的内容,也涉及到软件的形式和工作机制。

可扩展性使得面向对象程序设计法特别适合于在快速原型的软件开发方法中使用,也体现它对模块化技术的更有效的支持。

3)可管理性,面向对象的开发方法采用内涵比过程和函数丰富、复杂得多的类作为构建系统的部件,使整个项目的组织更加合理、方便。

第二章1.编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。

public class Ex2_3{public static void main(String[] args){System.out.println("Welcom to java vorld");}}2.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”的串信息。

数据结构与算法--课件模拟试卷B

数据结构与算法--课件模拟试卷B

浙江大学远程教育学院试题卷B卷课程名称数据结构与算法教学站年级专业(层次) 学号姓名注意:所有试题答案均按题目编号写在答题卷上。

一.单项选择题(每项选择1.5分,共60分)1、数据结构形式地定义为(D,S),其中D是①的有限集合,S是D上的②的有限集合。

① A.算法 B.数据元素 C.逻辑结构 D.数据操作② A.结构 B.操作 C.存储 D.关系2、计算机算法是指①,它必须具备输入、输出和②等五个特性。

① A.计算方法 B.排序方法 C.调度方法 D.解决问题的有限运算序列② A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、稳定性和有穷性D.易读性、稳定性和安全性3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址①。

① A.必须是连续的 B.部分地址必须是连续的C.连续或者不连续都可以D.一定是不连续的4、线性表的逻辑顺序和存储顺序总是一致的,这种说法①。

① A. 不正确 B.正确5、一个栈的进栈序列是a,b,c,d,e,则栈的不可能的出栈序列是①。

① A. edcba B. decba C. dceab D. abcde6、判断一个循环队列Q(最多元素为MAXQSIZE)为空队列的条件是①,为满队列的条件是②。

A. Q.front == Q.rearB. Q.front != Q.rearC. Q.front == (Q.rear+1)%MAXQSIZED. Q.rear == (Q.front+1)%MAXQSIZE7、一个一维数组第一个存储单元的地址是100,每个元素的长度是4,则它的第5个元素的地址是①。

① A. 120 B. 116 C. 110 D. 1048、某语言采用低下标优先方式存放数组元素,数组下标从1开始。

设维数为(5,6,7)的数组A5x6x7的起始存储地址为Loc[1][1][1]=1000,每个数组元素占用4个字节。

则元素A[3][4][5]所在的地址Loc[3][4][5]=①。

2014--浙江大学远程教育学院在线作业数据结构与算法100分讲解

2014--浙江大学远程教育学院在线作业数据结构与算法100分讲解

您的本次作业分数为:100分单选题1.设散列表长为14,散列函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测法解决冲突,则放入的位置是____________。

A 8B 3C 5D 9正确答案:D单选题2.下列排序算法的时间复杂度最小的是____。

A 冒泡排序B 希尔排序C 简单选择排序D 归并排序正确答案:D单选题3.带头结点的单链表Head为空表的判定条件是______。

A Head->next==HeadB Head->next==NULLC Head!=NULLD Head==NULL正确答案:B4.若用二分查找法取得的中间位置元素键值大于被查找值,说明被查找值位于中间值的前面,下次的查找区间为从原开始位置至____。

A 该中间位置B 该中间位置-1C 该中间位置+1D 该中间位置/2正确答案:B单选题5.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准元素得到的一次划分结果为。

A 38,40,46,56,79,84B 40,38,46,79,56,84C 40,38,46,56,79,84D 40,38,46,84,56,79正确答案:C单选题6.下面关于图的存储的叙述中,哪一个是正确的?A 用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关B 用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C 用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D 用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关正确答案:A7.具有5个顶点的有向完全图有____条弧。

A 10B 16C 20D 25正确答案:C单选题8.数据结构课程主要研究以下三方面的内容,它们是______。

A 数据、数据元素、数据类型B 数据元素、数据类型、算法实现C 数据元素、数据的逻辑结构、数据的存储结构D 数据的逻辑结构、数据的存储结构、数据的运算正确答案:D单选题9.设二叉树根结点的层次为1,所有含有15个结点的二叉树中,最小高度是_____。

2022年浙大城市学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年浙大城市学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年浙大城市学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、哈希文件使用哈希函数将记录的关键字值计算转化为记录的存放地址,因为哈希函数是一对一的关系,则选择好的()方法是哈希文件的关键。

A.哈希函数B.除余法中的质数C.冲突处理D.哈希函数和冲突处理2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。

A.13B.33C.18D.403、计算机算法指的是解决问题的步骤序列,它必须具备()三个特性。

A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。

A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)5、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。

A.543612B.453126C.346521D.2341566、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。

A.只有e B.有e、b C.有e、c D.无法确定7、下列关于无向连通图特性的叙述中,正确的是()。

Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ8、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为()。

A.CBEFDAB.FEDCBAC.CBEDFAD.不定9、每个结点的度或者为0或者为2的二叉树称为正则二叉树。

n个结点的正则二叉树中有()个叶子。

A.log2nB.(n-1)/2C.log2n+1D.(n+1)/210、在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是()。

数据结构与算法离线作业 答案知识讲解

数据结构与算法离线作业 答案知识讲解

数据结构与算法离线作业答案浙江大学远程教育学院《数据结构与算法》课程离线作业姓名:陈翠学号:713009014001年级:2013秋学习中心:金华学习中心—————————————————————————————一、填空题:(【序号,章,节】。

)【1,1,2】线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

【2,1,2】为了最快地存取数据元素,物理结构宜采用顺序存储结构。

【3,1,2】存储结构可根据数据元素在机器中的位置是否一定连续分为顺序存储结构___,链式存储结构___。

【4,1,3】度量算法效率可通过时间复杂度___来进行。

【5,1,3】设n 为正整数,下面程序段中前置以记号@的语句的频度是n(n+1)/2 。

for (i=0; i<n; i++){for (j=0; j<n; j++)if (i+j==n-1)@ a[i][j]=0;}【6,1,3】设n 为正整数,试确定下列各程序段中前置以记号@的语句的频度:收集于网络,如有侵权请联系管理员删除(1) i=1; k=0;while (i<=n-1){i++;@ k+=10 * i; // 语句的频度是_________n-1_______________。

}(2) k=0;for (i=1; i<=n; i++){for (j=i; j<=n; j++)@ k++; // 语句的频度是_________n(n+1)/2________________。

}【7,3,2】线性表(a1,a2,…,a n)有两种存储结构:顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充: ___顺序_ 存储密度较大;___顺序____存储利用率较高;___顺序____可以随机存取;__链式_____不可以随机存取;__链式____插入和删除操作比较方便。

【8,3,2】从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。

12秋-浙大远程-面向对象程序设计的-离线作业

12秋-浙大远程-面向对象程序设计的-离线作业

浙江大学远程教育学院《面向对象程序设计》课程作业姓名:学号:年级:学习中心:—————————————————————————————第2章【2.3】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。

//this is a strange /*way to do a comment*/答:此注释有效,单行注释中可以嵌套 / * …… * /方式的注释。

【2.4】以下这个简短的C++程序不可能编译通过,为什么?#include<iostream>using namespace std;sum(int a,int b)int main(){int a,b,c;cout<<"Enter two numbers:";cin>>a>>b;c=sum(a,b);cout<<"sum is:"<<c;return 0;}sum(int a,int b){ return a+b;}答:不可能通过编译.在using namespace std;后面加上sum(int a,int b)就可以通过。

【2.5】回答问题。

(1) 以下两个函数原型是否等价:float fun(int a,float b,char *c);float fun(int,float,char * );(2) 以下两个函数的第一行是否等价:float fun(int a,float b,char * c);float fun(int,float,char * );答:(1)这两个函数原型是等价的,函数原型中的参数名可以缺省。

(2)这两个函数的第1行是不等价的,因为这个函数的第1行中必须包含参数名。

【2.6】下列语句中错误的是(D )。

A.int *p=new int(10);B.int *p=new int[10];C.int *p=new int;D.int *p=new int[40](0);【2.7】假设已经有定义“const char * const name="chen";”下面的语句中正确的是(D )。

2022年浙江大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年浙江大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年浙江大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将线性表的数据元素进行扩充,允许带结构的线性表是()。

A.串B.树C.广义表D.栈2、哈希文件使用哈希函数将记录的关键字值计算转化为记录的存放地址,因为哈希函数是一对一的关系,则选择好的()方法是哈希文件的关键。

A.哈希函数B.除余法中的质数C.冲突处理D.哈希函数和冲突处理3、静态链表中指针表示的是()。

A.下一元素的地址B.内存储器的地址C.下一元素在数组中的位置D.左链或右链指向的元素的地址4、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。

A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front5、在下列表述中,正确的是()A.含有一个或多个空格字符的串称为空格串B.对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树C.选择排序算法是不稳定的D.平衡二叉树的左右子树的结点数之差的绝对值不超过l6、下列选项中,不能构成折半查找中关键字比较序列的是()。

A.500,200,450,180 B.500,450,200,180C.180,500,200,450 D.180,200,500,4507、已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后的小根堆是()。

A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,198、下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序()。

A.二叉排序树B.哈夫曼树C.AVL树D.堆9、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。

浙大远程数据结构与算法模拟卷

浙大远程数据结构与算法模拟卷

《数据结构与算法》模拟卷答案、判断题(共10小题,每小题1分,共10分,正确的打,错误的打“X” 。

答案填写 在答题表格中。

) X 1、数据元素的逻辑结构相同时物理结构也应该相同。

V 2、设n 为正整数,则下列算法的时间复杂性是O (log 2n )。

sum = 0; do sum += n; while ( n=n/2); V 3、在n 个元素的顺序表中的第i 个元素之前插入一个元素,需要移动n-i+1个元素X 4、线性表的特点是每个元素都有一个前驱和一个后继。

X 5、循环队列不存在空间溢岀问题。

V 6、n (n>0)个结点的树有 n-1条边。

V 7、满二叉树一定是完全二叉树,反之不然。

V 8、树可以看成是连通的图。

X 9、5个顶点的无向图最多可能有20条边。

X 10、二叉排序树主要用于对数据的排序。

、单项选择题(共 20小题,每小题2分,共40分。

答案填写在答题表格中。

))以及它们之间的相互关系。

B.理想结构,抽象结构D. Head == NULL若某堆栈的输入序列为 1,2,3,…,n-1,n ,输岀序列的第1个元素为n ,则第i 个输岀元 素为(A )。

A. n-i+lB . n-iC . iD .哪个元素都有可能 7、在具有n 个单元顺序存储的循环队列中,队满时共有(A )个元素。

A. n-1B. nC. n+1D. n+28、设二叉树根结点的高度为1,所有含有16个结点的二叉树中,最小高度是(C )1、 数据结构是研究数据的(A.理想结构,物理结构 C.物理结构,逻辑结构 D.抽象结构,逻辑结构2、 计算机算法是指(D )3、 A.计算方法B.排序方法顺序表的特点是(B )。

C.调度方法D.解决问题的有限运算序列A. B. C. D. 逻辑上相邻的结点其物理位置不相邻 逻辑上相邻的结点其物理位置亦相邻 顺序表不是随机存储结构在顺序表中插入和删除操作比在链表上方便 4、 线性表按链式方式存储时,每个结点的存储包括(两部分。

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

浙大数据结构与算法离线作业————————————————————————————————作者:————————————————————————————————日期:ﻩ浙江大学远程教育学院《数据结构与算法》课程离线作业姓名:学号:年级:2016春学习中心:—————————————————————————————一、填空题:(【序号,章,节】。

)【1,1,2】线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

【2,1,2】为了最快地存取数据元素,物理结构宜采用顺序存储结构。

【3,1,2】存储结构可根据数据元素在机器中的位置是否一定连续分为顺序存储结构 , 链式存储结构。

【4,1,3】度量算法效率可通过时间复杂度来进行。

【5,1,3】设n 为正整数,下面程序段中前置以记号@的语句的频度是n(n+1)/2 。

for(i=0; i<n; i++){for (j=0; j<n; j++)if (i+j==n-1)@ a[i][j]=0;}【6,1,3】设n为正整数,试确定下列各程序段中前置以记号@的语句的频度:(1) i=1; k=0;while(i<=n-1){i++;@ k+=10 * i; // 语句的频度是n-1。

}(2) k=0;for (i=1; i<=n; i++){for (j=i; j<=n; j++)@ k++; // 语句的频度是n(n+1)/2。

}【7,3,2】线性表(a1,a2,…,a n)有两种存储结构: 顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充:顺序存储密度较大;顺序存储利用率较高;顺序可以随机存取;链式不可以随机存取;链式插入和删除操作比较方便。

【8,3,2】从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n-i个元素。

【9,3,2】带头结点的单链表Head为空的条件是Head->next=NULL。

【10,3,2】在一个单链表中p所指结点(p所指不是最后结点)之后插入一个由指针s所指结点,应执行s->next=_p->next;和p->next=s的操作。

【11,3,2】在一个单链表中删除p所指结点时,应执行以下操作:q= p->next;p->data= p->next->data;p->next= p->next->next ;free(q);【12,3,2】带头结点的单循环链表Head的判空条件是Head->next==Head;不带头结点的单循环链表的判空条件是Head==NULL。

【13,3,2】已知L是带表头结点的非空单链表, 且P结点既然不首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

a.删除P结点的直接前驱结点的语句序列是10 12 8 11 4 14。

b. 删除结点P的语句序列是10 12 7 3 14。

c. 删除尾元结点的语句序列是9 11 3 14。

(1)P =P->next;(2) P->next =P;(3) P->next = P->next ->next;(4)P=P->next ->next;(5) while (P != NULL)P= P->next;(6) while (Q->next != NULL){P = Q; Q =Q->next};(7) while (P->next!= Q) P= P->next;(8)while (P->next->next!=Q)P = P->next;(9) while(P->next->next != NULL) P = P->next;(10) Q = P;(11)Q= P->next;(12)P =L;(13) L = L->next;(14)free (Q);【14,3,3】对一个栈,给定输入的顺序是A、B、C,则全部不可能的输出序列有CAB。

【15,3,3】.在栈顶指针为HS的链栈中,判定栈空的条件是head->next==NULL 。

【16,3,3】下列程序把十进制数转换为十六进制数,请填写合适的语句成分。

void conversion10_16(){ InitStack(&s);scanf(“%d”,&N);while(N){Push(s,N%16) ;N = N/16;}while(!StackEmpty(s)){Pop(s,e) ;if(e<=9)printf(“%d”,e);else printf(“%c”,e-10+’A’);}} /* conversion */【17,3,4】若用一个大小为6个元素的数组来实现循环队列,且当前rear=0和front=3。

当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是 2 和 4 。

【18,3,4】堆栈和队列都是线性表, 堆栈是后进先出的线性表, 而队列是先进先出的线性表。

【19,3,4】若用一个大小为6个元素的数组来实现循环队列,且当前rear=0和front=3。

当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是2和 4 。

【20,4,2】已知一棵树边的集合是{<a,d>,<d,c>,<d,j>,<e,a>,<f,g>,<d,b>,<g,h>,<g,i>,<e,f>}。

那么根结点是 e ,结点b的双亲是d,结点a的子孙有 bcdj,树的深度是4,树的度是3,结点g在树的第 3 层。

【21,4,3】从概念上讲,树与二叉树是二种不同的数据结构,将树转化为二叉树的基本的目的是采用二叉树的存储结构并利用二叉树的已有算法解决树的有关问题。

【22,4,3】满三叉树的第i层的结点个数为3i-1 ,深度为h时该树中共有3h-1 结点。

【23,4,3】已知一棵完全二叉树有56个叶子结点,从上到下、从左到右对它的结点进行编号,根结点为1号。

则该完全二叉树总共结点有 111个;有 7 层;第91号结点的双亲结点是 45 号;第63号结点的左孩子结点是32 号。

【24,4,3】下列表示的图中,共有 5 个是树;有3个是二叉树;有 2 个是完全二叉树。

【25,4,4】n个结点的二叉排序树的最大深度是 n ,最小深度为[log2n]+1 。

【26,4,3】如果某二叉树的后序遍历序列是ABCDEFGHI,中序遍历序列是ACBIDFEHG,则其先序遍历序列的第一个字母是 I ,最后一个字母是 G 。

【27,4,3】下列二叉树的中序遍历序列是DBNGOAEC ;后序遍历序列是DNIGBECA。

【28,5,4】设HASH表的大小为n(n=10),HASH函数为h(x)=x % 7,如果二次探测再散列方法Hi=(H(key)+di) mod 10 (di = 12,22,32,…,)解决冲突,在HASH表中依次插入关键字{1,14,55,20,84,27}以后,关键字1、20和27所在地址的下标分别是 1 、 7 和5。

插入上述6个元素的平均比较次数是 2 。

【29,6,3】设无权图G的邻接矩阵为A,若(vi,vj)属于图G的边集合,则对应元素A[i][j]等于 1 ,22、设无向图G的邻接矩阵为A,若A[i][j]等于0,则A[j][i]等于0。

【30,6,3】若一个图用邻接矩阵表示,则删除从第i个顶点出发的所有边的方法是矩阵第i行全部置为零。

【31,6,2】设一个图G={V,{A}},V={a,b,c,d,e,f},A={<a,b>,<b,e>,<a,e>,<c,a>,<e,d>,<d,f>,<f,c>}。

那么顶点e的入度是 2 ;出度是 1 ;通过顶点f的简单回路有 2 条;就连通性而言,该图是强连通图;它的强连通分量有 1 个;其生成树可能的最大深度是 5 。

【32,7,1】排序过程一般需经过两个基本操作,它们是比较和移动。

【33,7,2】在对一组关键字是(54,38,96,45,15,72,60,23,83)的记录进行直接插入排序时,当把第七个记录(关键字是60)插入到有序表时,为寻找插入位置需比较 3 次。

【34,7,4】插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序、和基数排序方法中,不稳定的排序方法有希尔排序、快速排序、堆排序。

ﻬ二、综合题(选自教材《数据结构》各章习题,采用word文件格式上传)【1,1,3】试分析下面一段代码的时间复杂度:if ( A > B ) {f or ( i =0; i <N ; i++ )for ( j=N*N; j>i; j-- )A += B;}else {f or ( i=0; i<N*2; i++ )for ( j=N*2; j>i; j -- )A +=B ;}答:i f A>B 为真,则for 语句的外循环N 次,内循环为N(N -1)次,因此时间复杂度为O(N * N(N-1)),也就是N 的三次方。

i f A>B为假,则for 语句的外循环2N 次,内循环为N 次,因此时间复杂度为O(2N*N),也就是N 的平方。

整段取最大的,时间复杂度就是N 立方。

【2,1,3】测试例1.3中秦九韶算法与直接法的效率差别。

令i x x f i i /1)(1001∑=+=,计算)1.1(f 的值。

利用c lock()函数得到两种算法在同一机器上的运行时间。

答:直接法:0.1μ s秦九韶算法:0.04μ s【3,1,3】 试分析最大子列和算法1.3的空间复杂度。

答: 算法1.3的基本思路是将原问题拆分成若干小型问题,分别解决后再将结果合而治之,用递归方法实现。

算法1.3的负责度分析略有难度:若记整体时间复杂度为T(N),则函数D ivide And Co nquer 中通过递归实现“分”的复杂度为2T(N /2),因为我们解决了2个长度减半的字问题。

求跨分界线的最大子列和时,有两个简单的for 循环,所用步骤一共不超过N ,所以可以在O (N )时间完成。

其他步骤都只需常熟O(1)时间。

综上分析则有递推式:T(1)=O(1);T(N )=2T(N/2)+O(N)=2[2T ((N/2)/2+O (N/2)]+O(N )=22T(N /22)+2O(N)=…=2K T (N/2k )+kO(N)当不断对分直到N/2k =1,即2k=N时,就得到T(N)=NT(1)+lo gN *O (N)=O(N log N)。

相关文档
最新文档