1.下面程序段的时间复杂度为( )。 for ( int i = 0; i < m; i++ )
for ( int j = 0; j < n; j++ )
a[i][j] = i*j;
A.O(m2) B. O(n2) C. O(m*n) D. O(m+n)
2.执行下面程序段时,执行S语句的次数为( )。
for ( int i = 1; i <= n; i++ )
for ( int j = 1; j <= i; j++ )
S;
A.n2 B. n2/2 C. n(n+1) D.n(n+1)/2
3.下面算法的时间复杂度为( )。
int f ( unsigned int n ) {
if ( n ==0 || n == 1 ) return 1;
else return n*f(n-1);
}
A.O(1) B. O(n) C. O(n2) D. O(n!)
书上答案是BBD,我感觉第一道是错的,应该是O(mn),
第三道我想问一下为什么不是选D
那我不就全错QAQ……搞得我很不好意思= =
关键是我检查了下还是觉得我是对的
第一个肯定是C,第二个难道不是等差数列么……怎么会是B呢?
第三个应该是B吧,举个例子,f(3)=3*f(2)=3*2*f(1)=3*2*1,这不是递归了n次么?其实这跟直接写循环结构是一样的,这个还要用到系统栈……
我觉得我的答案是对的,应该是书本错了!
数据结构时间复杂度问题?
第五题解析里的式子是一种两个连加的情况,连加的具体计算过程如下图所示,i-1代表外层循环的次数,当i=2时开始计算,一直连加到n-1,所以最后会变成n-1,具体操作如图所示,希望能为您解惑哦~具体过程,请笑纳~
如图数据结构关于时间复杂度的计算
9题:第一句循环体执行n次后,多了一次判断i>0,不满足条件退出,所以共执行n+1次 第二句就是循环体n次 第三句,开始i=j=n,只能执行1次,加一次判断退出,共两次,之后随着i的减小,循环次数变多,最后i=1.循环n次,加一次判断退出,所以第三句总共执行累加和(1+1)+(2+1)+(3+1)+。。
数据结构“时间复杂度”的题目
1.C 二重循环,复杂度就是O(mn)2.D 这个是特殊一点的二重循环,次数为1+2+……+n=n(n+1)\/2,即D 3.B 这个是递归,求n!,也就是n*(n-1)*……*1,递归n次,复杂度为O(n)不懂可问望采纳!
一道数据结构 时间复杂度的题目,求助!
首先要弄清楚 O 记号是什么意思,用它来表示一个算法运行时间的渐近上界,对于函数g(n),用O(g(n))表示一个函数集合。算法导论书上有这样的定义:O(g(n)) = {f(n): 存在正整数c和n0,使对所有的n>=n0,有0<=f(n)<=cg(n)} 上面的看不懂也可以忽略,你只需要知道一个渐近正...
2023年408真题数据结构篇
2023年408真题数据结构篇 多项选择题部分,共涉及80分,每题2分:1. 查找操作时间复杂度为[公式] 的是(D)A. 查找包含指定值的元素的位置B. 插入包含指定值元素C. 删除第[公式] 个元素D. 获取第[公式] 个元素 答案:D 2. 插入指针s后,还需额外执行的语句是(C)A. s->next->prev =...
《数据结构》的题;求下列程序段的时间复杂度。要过程
时间复杂度是O(n^3)第一个for 进行n次循环 第二个for进行n+1次循环 第三个for进行n次循环乘法和赋值 设赋值和乘法的开销为a 那么 总开销为n*(n+1)*a n=a n^3+a n^2 省略小的开销得到an^3 所以时间复杂度为n^3
时间复杂度怎么算例题
时间复杂度算例题如下:(1)递归执行过程 例子:求N!。这是一个简单的"累乘"问题,用递归算法也能解决。n!=n*(n-1)!n>1 0!=1,1!=1n=0,1 因此,递归算法如下:Java代码 fact(intn){ if(n==0||n==1)return1;else returnn*fact(n-1);} 以n=3为例,看运行过程如下:fact(3)--...
...插入一个新结点并依保持为有序单链表的时间复杂度为
2)其次,设原序列有n个结点,则有新结点有n+1个空位可以插入,插入到第一个空位需要比较1次,第二个空位比较2次。。。第n个空位比较n次,第n+1个空位不需要比较 3)最后,假设每个空位插入的可能性相同,因此,时间复杂度为1\/(n+1) * (1+2+...+n)=1\/(n+1) * (n+1)n\/2=...
求数据结构 顺序查找的时间\/空间复杂度
假设各元素概率相等,查找成功时间复杂度:(n+1)\/2,查找不成功3\/4(n+1)
数据结构时间复杂度问题
> n;对于整数就是2i 为n +1 或者n+2时退出,因为循环体中执行一次i加1,执行完第m次循环时,i的值为m +1,如果此时退出循环,列出算式就是:2(m+1)>n 得到m > n \/ 2 - 1,由于是整数,因此m为(n\/2)-1 之后上取整就可以了 去掉所有的常量后,时间复杂度当然还是O(n)...