波波的数据结构-概论

该博客主要围绕数据结构相关内容,给出了一系列选择题及解析,重点涉及算法时间复杂度的计算,如不同循环嵌套下时间复杂度的判断,还包含数据结构概念、算法原则等方面的题目,旨在帮助复习预习,助力期末不挂科。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

波波的数据结构属实上的快,这里将会写些pta的解析,算是复习 预习,帮助我与大家期末不挂科




概论

一、选择题

2-1
下面程序段的时间复杂度是(B )。

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

A.O(2n)
B.O(n*m)
C.O(n​^2)
D.O(logn)

解析: 两个循环n次与m次相乘
2-2
For the following piece of code the time complexity is:(D)

for(i=0; i<n; i++)
  for(j=i; j>0; j/=2)
     printf(%d\n”, j);

A.O(N×i)
B.O(N)
C.O(N​^2)
D.O(NlogN)
解析: 第一个循环为n 第二个循环为logN
2-3
要判断一个整数N(>10)是否素数,我们需要检查3到√​N之间是否存在奇数可以整除N。则这个算法的时间复杂度是:©
A.O(N/2)
B.O(√​NlogN)
C.O(√N​)
D.O(0.5logN)
解析: 检查√​N-3次 时间复杂度不计算常数
2-4
下列代码的时间复杂度是:(B)

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

解析: 时间复杂度计算大的那一个 第一个循环时间复杂度为n^4,第二个为n*n
2-5
下面的程序段违反了算法的(A)原则

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

A.有穷性
B.确定性
C.可行性
D.健壮性
2-6
数据在计算机内存中的表示是指(A) 。
A.数据的存储结构
B.数据结构
C.数据的逻辑结构
D.数据元素之间的关系
2-7
算法分析的两个主要方面是(A)。
A.空间复杂性和时间复杂性
B.正确性和简明性
C.可读性和文档性
D.数据复杂性和程序复杂性
2-8
在数据结构中,与所使用的计算机无关的数据结构是(A)。
A.逻辑结构
B.存储结构
C.逻辑结构和存储结构
D.物理结构
解析:数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式
2-9
下面程序的时间复杂度为(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)
解析:两循环 第一个m次 第二个n次
2-10
某算法的时间复杂度是O(n^​2​​),表明该算法的(D )。
A.问题规模是n^2
B.问题规模与n^​2成正比
C.执行时间等于n^2
D.执行时间与n^2成正比
解析:问题规模为n 时间复杂度指的是运行时间的正比
2-11
设 n 是描述问题规模的非负整数,下列程序段的时间复杂度是:
下面程序段的时间复杂度是(B )。

x = 0;
while ( n >= (x+1)*(x+1) )
    x = x+1;

A.O(logn)
B.O(n^1/2)
C.O(n)
D.O(n^2)
解析: 在大于√n次后将停止循环所以时间复杂度为O(n^1/2)
2-12
下面程序段的时间复杂度是 ( D)

i = 0while(i<=n)
     i = i * 3

A.O(2n)
B.O(n)
C.O(n^2​​ )
D.O(log​3n)
解析:同上题
2-13
下列函数中,哪两个函数具有相同的增长速度:(D)
A.2^N和NN
B.N和2/N
C.N​
NlogN和NlogNN
D.NlogN
N和NlogN
解析:根据数学知识,D选项相差2倍,但时间复杂度中倍数可以忽略
2-14
下列函数中,哪个函数具有最快的增长速度?(C)
A.N^2 logN
B.N(logN)^​4
C.N​^3
D.NlogN^2
2-15
给定程序时间复杂度的递推公式:T(1)=1,T(N)=2T(N/2)+N。则程序时间复杂度是:©
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N^2)
解析:由时间代价严格推出时间复杂度比较复杂,对于这种题,可用特例验证,不过需要注意的是特例不能取太少,至少n取到5,这样规律基本就可以确定了。
T(1)=1
T(2)=2T(1)+2=4
T(3)=2T(1)+3=5
T(4)=2T(2)+4=12
T(5)=2T(2)+5=13
很容易排除D选项,其递增速率介于O(n)和O(n2)之间,故选C
2-16
计算机所处理的数据一般具有某种关系,这是指(B )。
A.数据与数据之间存在的某种关系
B.数据元素与数据元素之间存在的某种关系
C.元素内数据项与数据项之间存在的某种关系
D.数据文件内记录与记录之间存在的某种关系
2-17
算法分析的目的是( C)。
A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的可读性和简明性
2-18
以下关于数据结构的说法中正确的是_A___。
A.数据结构的逻辑结构独立于其存储结构
B.数据结构的存储结构独立于该数据结构的逻辑结构
C.数据结构的逻辑结构唯一地决定了该数据结构的存储结构
D.数据结构仅由其逻辑结构和存储结构决定
2-19
连续存储设计时,存储单元的地址( )。

A.一定连续
B.一定不连续
C.不一定连续
D.部分连续,部分不连续
解析:垃圾题 A和C在不同情况都对
2-20
可以用( D)定义一个完整的数据结构。
A.数据元素
B.数据对象
C.数据关系
D.抽象数据类型

二、填空题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值