一.判断题
1. 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。T
2. N2logN和NlogN2具有相同的增长速度。F
3. 2N和NN具有相同的增长速度。F
4. 100logN是O(N)的。T
5. (NlogN)/1000是O(N)的。F
6. 在任何情况下,时间复杂度为O(n2) 的算法比时间复杂度为O(n*logn)的算法所花费的时间都长。F
7. 对于某些算法,随着问题规模的扩大,所花的时间不一定单调增加。T
二.单选题
数据的()包括集合、线性结构、树形结构和图形结构四种基本类型。 (2分)
数据在计算机内存中的表示是指() 。 (2分)
下列关于数据的逻辑结构的叙述中,()是正确的。 (2分)
数据结构是一门研究非数值计算的程序设计问题中计算机的()以及它们之间的关系和运算等的学科。 (2分)
在数据结构中,与所使用的计算机无关的数据结构是()。 (2分)
在决定选取何种存储结构时,一般不考虑()。 (2分)
线性结构中元素之间存在()关系。 (2分)
树形结构中元素之间存在()关系。 (2分)
图形结构中元素之间存在()关系。 (2分)
在数据结构中,从逻辑上可以把数据结构分成( )。 (1分)
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。 (1分)
通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。 (1分)
算法的时间复杂度取决于( )。 (1分)
以下数据结构中,( )是非线性数据结构。 (1分)
以下说法正确的是( )。 (1分)
数据的基本单位是()。 (1分)
计算机算法指的是()。 (1分)
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。 (1分)
(neuDS)链式存储设计时,各结点间的存储单元的地址( )。 (1分)
下面代码段的时间复杂度是()。(2分)
x=n; //n>1
y=0;
while( x≥(y+1)*(y+1) )
y++;
下列代码
if ( A > B ) {
for ( i=0; i<N*N/100; i++ )
for ( j=N*N; j>i; j-- )
A += B;
}
else {
for ( i=0; i<N*2; i++ )
for ( j=N*3; j>i; j-- )
A += B;
}
的时间复杂度是:(2分)
下列函数
int func ( int n )
{ int i = 0, sum = 0;
while ( sum < n ) sum += ++i;
return i;
}
的时间复杂度是:(2分)
下列代码
for(i=0; i<n; i++)
for(j=i; j>0; j/=2)
printf(“%d\n”, j);
的时间复杂度是: (3分)
下面代码段的时间复杂度是()。 (2分)
x=0;
for( i=1; i<n; i++ )
for ( j=1; j<=n-i; j++ )
x++;
要判断一个整数N(>10)是否素数,我们需要检查3到√N之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(2分)
下列函数中,哪个函数具有最慢的增长速度:(2分)
给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:(2分)
计算机算法必须具备输入、输出和()等五个特性。