数据结构各章习题及答案.docx

想预览更多内容,点击预览全文

申明敬告:

本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

数据结构习题及解答

第1章 概述

【例 1-1 】分析以下程序段的 复 度。

for(i=0;i<n;i++)

for(j=0;j<m;j++)

A[i][j]=0;

解: 程序段的 复 度 O(m*n) 。

【例 1-2 】分析以下程序段的 复 度。

i=s=0;



while(s<n)

{ i++;



s+=i;



}

解: 句① 句,其 行次数 1 次,所以其 复 度 O(1) 。 句②和

句③构成 while 循 句的循 体, 它 的 行次数由循 控制条件中 s 与 n 的 确定。 假

定循 重复 行 x 次后 束, 句②和 句③各重复 行了 x 次。其 复 度按 性

累加 O(x) 。此 s 与 n 足关系式: s≥n,而 s=1+2+3+?+x。所以有: 1+2+3+? +x ≥n,可以推出:

x=

x 与 n 之 足 x=f( ),所以循 体的 复 度 得到 程序段的 复 度 O()。

【例 1-3 】分析以下程序段的 复 度。



O() , 句①与循 体由 性累加

i=1;



while(i<=n)

i=2*i;



解:其中 句①的 行次数是



1, 句②的 行次数



f(n)



, 有:。

得: T( n) =O()

【例



1-4 】有如下 函数



fact(n)



,分析其 复 度。

fact(int n)

{ if(n<=1)

return(1); ①

else

return(n*fact(n-1));



}

解:设 fact ( n)的运行时间函数是 T(n) 。该函数中语句①的运行时间是

②的运行时间是 T(n-1)+ O(1) ,其中 O(1) 为常量运行时间。

由此可得 fact ( n)的时间复杂度为 O(n) 。



O(1) ,语句

习题 1

一、单项选择题

您可能关注的文档

最近下载