算法与数据结构 判断选择程序填空 绪论

1-1 (neuDS)数据的物理结构是指数据在计算机中的实际存储形式。 T
1-2 N^​2​​/1000 is O(N). F
1-3 2​^N​​ 和 N​​^N具有相同的增长速度。 F
1-4 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 T
1-5 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构。F
1-6 (neuDS)算法必须有输出,但可以没有输入. T
1-7 算法独立于具体的程序设计语言,与具体的计算机无关。T`
1-8 用渐进表示法分析算法复杂度的增长趋势。 T
1-9 O(n^​2​​),O(1+2+···+n) 对应的算法时间复杂度相同。T
1-10 数据的逻辑结构与数据元素本身的内容和形式无关。 T
1-11 数据项是数据的最小单位。 T
1-12 数据元素是数据的最小单位。 F
1-13 数据的逻辑结构是指数据的各数据项之间的逻辑关系。 F
1-14 数据结构概念包括数据之间的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。 T
1-15 数据结构的抽象操作的定义与具体实现有关。 F
1-16 抽象数据类型与计算机内部表示和实现无关。T
1-17关于《数据结构》学科《数据结构》是一门研究数值计算的程序设计问题的学科 。
F
1-18 logN​^2​​ is O(N). T
1-19 ​n^​0.01​​ is O(logn). F

2-1以下关于数据结构的说法中正确的是__A__。
A.数据结构的逻辑结构独立于其存储结构
B.数据结构的存储结构独立于该数据结构的逻辑结构
C.数据结构的逻辑结构唯一地决定了该数据结构的存储结构
D.数据结构仅由其逻辑结构和存储结构决定

2-2下面程序段的时间复杂度是(A)。
x=90;
y=100;
while(y>0)
if(x>100)
{ x=x-10; y–; }
else x++;
A.O(1)
B.O(N)
C.O(N^​2​​)
D.O(log​2 ​​N)

2-3 某数据对象由三个元素A、B、C构成,元素间关系的集合为{},该数据对象的逻辑结构为 ( C )
A.线性结构
B.树型结构
C.图结构
D.集合结构

2-4给定程序时间复杂度的递推公式:T(1)=1,T(N)=2T(N/2)+N。则程序时间复杂度是: C
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N^​2​​)

2-5下列函数中,哪个函数具有最慢的增长速度:B
A.N^​1.5​​
B.NlogN​^2​​
C.N​2​​logN
D.N(logN)​2​​

2-6下面的程序段违反了算法的(A)原则。

void sam()
{
       int n=2;
   while (n%2==0)    n+=2;
   printf(%d”,n);
}


A.有穷性
B.确定性
C.可行性
D.健壮性

2-7执行下面程序段时,执行S语句的频度为(D)。

for(int i=0;i<n;i++)
for(int j=1;j<=i;j++)
     S;
 

A.n​^2​​
B.n​^2​​/2
C.n(n+1)
D.n(n+1)/2

2-8算法分析的目的是(A)。
A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的易懂性和文档性

2-9在存储数据时,通常不仅要存储各数据元素的值,而且还要存储(C)。
A.数据的处理方法
B.数据元素的类型
C.数据元素之间的关系
D.数据的存储方法

2-10下面程序的时间复杂度为(C)。

for(i = 0; i < m; i++)
     for(j = 0; j < n; j++ )
          A[i][j] = i*j;
 

A.O(m^​2​​)
B.O(n^​2​​)
C.O(m × n)
D.O(m + n)

2-11下面程序的时间复杂度为(A)。

for(i = 0; i < m; i++)
      for(j = 0; j < t; j++)
           c[i][j] = 0;
for(i = 0; i < m; i++)
      for(j = 0; j < t; j++)
            for(k = 0; k < n; k++)
                 c[i][j] = c[i][j]+a[i][k] * b[k][j];

A.O(m × n × t)
B.O(m + n + t)
C.O(m + n × t)
D.O(m × t + n)

2-12某算法的时间复杂度是O(n​^2​​),表明该算法的(D )。
(2分) A.问题规模是n​^2​​
B.问题规模与n​^2​​成正比
C.执行时间等于n^​2​​
D.执行时间与n​^2​​成正比

2-13以下程序段的时间复杂度是 B

for (int i = 0; i * i < n; i++) {
     
    printf("%d\n", i);
} 

A.O(n)
B.O(√​n​​​)
C.O(n​2​​)
D.O(nlgn)

2-14数据在计算机内存中的表示是指(A) 。
A.数据的存储结构
B.数据结构
C.数据的逻辑结构
D.数据元素之间的关系

2-15下列关于数据的逻辑结构的叙述中,(A)是正确的。
A.数据的逻辑结构是数据元素间关系的描述
B.数据的逻辑结构反映了数据在计算机中的存储方式
C.数据的逻辑结构分为顺序结构和链式结构
D.数据的逻辑结构分为静态结构和动态结构

2-16以下有关算法的说法中错误的是(A)。
A.算法和程序都独立于具体的计算机和具体的编程语言
B.程序是用编程语言表述的算法
C.流程图是算法的图形化描述
D.程序表述算法,但算法不一定就是程序

2-17算法分析的目的是(C )。
A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的可读性和简明性

2-18对算法分析的前提是(B )。
A.算法必须简单
B.算法必须正确
C.算法结构性强
D.算法必须通用

2-19算法设计的要求
设计一个好的算法应该满足正确性、▁▁B▁▁▁、健壮性和高效性等要求。
A.可用性
B.可读性
C.可靠性
D.可行性

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

for ( i=0; i<n; i++ )
    for ( j=0; j<m; j++ )
        a[i][j]=0;
 

A.O(1)
B.O(mn)
C.O(m​^2​​)
D.O(n​^2​​)

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

x=0;
for( i=1; i<n; i++ )
    for ( j=1; j<=n-i; j++ )
        x++;
  

A.O(n)
B.O(n​^2​​)
C.O(n​^3​​)
D.O(2​^n​​)

2-22下列代码

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;
}

的时间复杂度是:B
A.O(N​^3​​)
B.O(N​^4​​)
C.O(N​^5​​)
D.O(N​^6​​)

5-1测量算法的运行时间
下面的程序测量某个函数 F 的运行时间。
请在空白处填写适当内容,完成该程序。

#include 
#include 

int F(int x);

int main()
{
     
    clock_t t1, t2;
    double t;
    int x, y;

    printf("x = ? ");
    scanf("%d", &x);

    t1 =clock() (2);

    y = F(x);

    t2 =clock() (2);

    t =(double)(t2-t1) / CLOCKS_PER_SEC (3);

    printf("y = %d\n", y);
    printf("It took %.2f second(s)\n", t);

    return 0;
}

int F(int x)
{
     
    ......
}

运行效果示例

x = ? 25
y = 3712
It took 1.25 second(s)

注:图中数据仅为样例,实际结果可能不同。

你可能感兴趣的:(笔记,算法,数据结构)