第一章作业2-算法时间复杂度和空间复杂度

1-1

算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 (1分)

T     

 

1-2

N​^2​​logN和NlogN^​2​​具有相同的增长速度。 (2分)

F: N​^2​​logN较快 ,取对数对增长影响还是蛮大的,毕竟裸的logn函数后期增长率趋近于零

 

1-3

2^​N​​和N^​N​​具有相同的增长速度。 (2分)

F:   N^​N​​炒鸡快

 

1-4

100logN是O(N)的。 (1分)

 F:大O表示法是不看系数的,所以是O(logN)的

 

 

1-5

(NlogN)/1000是O(N)的。 (1分)

 F:是 O(nlogn)的

 

1-6

在任何情况下,时间复杂度为O(n​2​​) 的算法比时间复杂度为O(n*logn)的算法所花费的时间都长。 (1分)

 F:具体问题具体分析

 

1-7

对于某些算法,随着问题规模的扩大,所花的时间不一定单调增加。 (1分)

T    

 

2-1

下面代码段的时间复杂度是(2)。(2分)

x=n; //n>1
y=0;
while( x≥(y+1)*(y+1) )
    y++;
  1. O(1)
  2. O(n​1/2​​)
  3. O(n)
  4. O(log​2​​n)

 

2-2

下列代码

if ( A > B ) {
    for ( i=0; ii; j-- )
            A += B;
}
else {
    for ( i=0; ii; j-- )
            A += B;
}

的时间复杂度是:(2分)

  1. O(N​3​​)
  2. O(N​4​​)  
  3. O(N​5​​)
  4. O(N​6​​)

2-3

下列函数

int func ( int n )
{   int i = 0, sum = 0;
    while ( sum < n )  sum += ++i;//等差数列求和
    return i;
}

的时间复杂度是:(2分)

  1. O(logn)
  2. O(n^1/2​​)
  3. O(n)
  4. O(nlogn)

2-4

下列代码

for(i=0; i0; j/=2)
     printf(“%d\n”, j);

的时间复杂度是: (3分)

  1. O(N×i)
  2. O(N)
  3. O(N​2​​)
  4. O(NlogN)

 

2-5

下面代码段的时间复杂度是()。 (2分)

x=0;  
for( i=1; i
  1. O(n)
  2. O(n​2​​)
  3. O(n​3​​)
  4. O(2​n​​)

 

2-6

要判断一个整数N(>10)是否素数,我们需要检查3到√​N​​​之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(2分)

  1. O(N/2)
  2. O(√​N​​​)
  3. O(√​N​​​logN)
  4. O(0.5logN)

 

2-7

下列函数中,哪个函数具有最慢的增长速度:(2分)

  1. N​^1.5​​
  2. NlogN​2​​
  3. N^​2​​logN
  4. N(logN)​^2​​

 

2-8

给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:(2分)

  1. O(N​^2​​)
  2. O(NlogN)
  3. O(N^​3​​logN)
  4. O(N​^3​​)

2-9

计算机算法指的是()。 (2分)

  1. 计算方法
  2. 排序方法
  3. 解决问题的有限运算序列
  4. 调度方法

 

2-10

计算机算法必须具备输入、输出和()等五个特性。 (2分)

  1. 可行性、可移植性和可扩充性
  2. 可行性、确定性和有穷性
  3. 确定性、有穷性和稳定性
  4. 易读性、稳定性和安全性

 

你可能感兴趣的:(数据结构作业题)