手机扫描二维码答题
00:00:00
第2章-算法+时间复杂度(常规课)
录音中...
*
您的姓名:
*
1.
下列哪种算法的时间复杂度与输入数据的有序性有关?
A、归并排序
B、插入排序
C、选择排序
D、堆排序
插入排序在有序时最好为O(n),无序时为O(n²)。
*
2.
数据元素及其关系在计算机存储器内的表示,称为数据的()?
A、线性结构
B、非线性结构
C、逻辑结构
D、存储结构
数据的存储结构是指数据元素及其关系在计算机内的实际存储方式。A、B是逻辑结构的分类,C是逻辑结构的统称。
*
3.
计算机算法指的是()?
A、计算方法
B、排序方法
C、解决问题的有限运算序列
D、调度方法
算法是为解决特定问题而设计的有限步骤序列。A、B、D只是算法的某些应用或类型。
*
4.
对于一个n阶矩阵,遍历所有元素的时间复杂度是?
A、O(n)
B、O(n²)
C、O(logn)
D、O(nlogn)
n阶矩阵有n²个元素,遍历一次为O(n²)。
*
5.
下列哪种排序算法的最好时间复杂度为O(n)?
A、冒泡排序
B、插入排序
C、选择排序
D、归并排序
插入排序在有序情况下最好为O(n)。
*
6.
归并排序的时间复杂度是?
A、O(n)
B、O(nlogn)
C、O(n²)
D、O(logn)
归并排序无论最好最坏平均都是O(nlogn)。
*
7.
对于一个n个节点的完全二叉树,层序遍历的时间复杂度是?
A、O(n)
B、O(logn)
C、O(nlogn)
D、O(n²)
每个节点访问一次,总共n个节点,O(n)。
*
8.
以下代码的时间复杂度
int a[
10001
];
for(int i=1;i<=n;i++){
cin>>a[
i
];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
if(a[
i
]!=a[
i+1
]){
cout<
<a[i]<<"
"<<i<<endl;
}
}
*
9.
下列哪种算法的平均时间复杂度是O(nlogn)?
A、冒泡排序
B、插入排序
C、快速排序
D、选择排序
快速排序的平均时间复杂度是O(nlogn)。
*
10.
以下代码的时间复杂度是多少?
for
(
int
i =
1
; i <= n; i++) {
for
(
int
j =
1
; j <=
100
; j++) {
a=1;
}
}
O(n)
O(n²)
O(100n)
O(logn)
内层循环与n无关,是常数100次,外层n次,总共100n次,数量级为O(n)。
*
11.
算法分析的两个主要方面是()?
A、空间复杂度和时间复杂度
B、正确性和简明性
C、可读性和文档性
D、数据复杂度和程序复杂度
算法分析主要关注算法的资源消耗,最重要的两个方面是时间复杂度(算法运行所需的时间)和空间复杂度(算法运行所需的存储空间)。B、C、D选项虽然也是算法设计中考虑的因素,但不是分析的主要方面。
*
12.
以下哪种排序算法的平均时间复杂度是O(n²)?
A、归并排序
B、快速排序
C、冒泡排序
D、堆排序
冒泡排序的平均时间复杂度是O(n²),其余三种为O(nlogn)。
*
13.
下列哪种操作的时间复杂度为O(1)?
A、访问数组第i个元素
B、链表查找第i个元素
C、二分查找
D、冒泡排序
数组支持随机访问,访问第i个元素为O(1)。
*
14.
对于一个长度为n的链表,查找第n个元素的时间复杂度是?
A、O(1)
B、O(logn)
C、O(n)
D、O(n²)
链表查找第n个元素需要遍历,时间复杂度为O(n)。
*
15.
以下代码的时间复杂度是多少?[
单选题
]
for
(
int
i =
1
; i <= n; i++) {
a=1;
}
for
(
int
j =
1
; j <= n; j++) {
b=2;
}
O(n)
O(n²)
O(2n)
O(logn)
两个独立的O(n)循环,总共2n次,数量级为O(n)。
*
16.
一个算法的效率可分为?效率和?效率。
时间效率指运行所需时间,空间效率指所需存储空间。
*
17.
算法分析的目的是()?
A、找出数据结构的合理性
B、研究算法中的输入和输出关系
C、分析算法的效率以求改进
D、分析算法的易懂性和文档性
算法分析的核心目的是评估算法的效率(时间和空间),以便优化。A、B、D不是主要目的。
*
18.
以下算法的时间复杂度为()?
void fun(int n)
{
int i=1;
while (i<=n)
i++;
}
A、O(n)
B、O(1)
C、O(nlog2n)
D、O(log2n)
while循环从1到n,每次i加1,共执行n次,时间复杂度为O(n)。B、C、D均不符。
*
19.
在含有127个元素的顺序表中插入一个新元素,平均移动元素的次数是()?
A、8
B、63.5
C、63
D、7
顺序表插入时,平均需要移动一半元素。127个元素,平均移动(127+1)/2=64次,实际为63.5次。A、C、D均不正确。
*
20.
数据结构是指()?
A、一种数据类型
B、数据的存储结构
C、一组性质相同的数据元素的集合
D、相互之间存在一种或多种特定关系的数据元素的集合
数据结构不仅仅是数据的集合,更强调元素之间的关系。A、B、C都没有体现元素间的关系。
*
21.
二分查找算法的时间复杂度是?
A、O(1)
B、O(n)
C、O(logn)
D、O(nlogn)
二分查找每次都将区间减半,时间复杂度为O(logn)。
*
22.
在n个元素的数组中查找一个元素(无序),最坏情况下的时间复杂度是?
A、O(1)
B、O(logn)
C、O(n)
D、O(n²)
无序数组只能顺序查找,最坏要查n次,时间复杂度为O(n)。
*
23.
数据的逻辑结构有四种基本形态,分别是?
集合结构无序无重,线性结构一对一,树结构一对多,图结构多对多。
*
24.
下列哪种排序算法的平均和最坏时间复杂度都为O(nlogn)?
A、快速排序
B、归并排序
C、冒泡排序
D、插入排序
归并排序的平均和最坏时间复杂度都是O(nlogn)。
*
25.
以下代码的时间复杂度是多少?
int sum = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
sum++;
}
}
A、O(n)
B、O(logn)
C、O(nlogn)
D、O(n²)
外层循环i从1到n,内层循环j从1到i。
总执行次数为1+2+3+...+n = n(n+1)/2,数量级为O(n²)。
所以答案是D、O(n²)。
*
26.
下列哪种排序算法的最坏时间复杂度不是O(n²)?
A、冒泡排序
B、插入排序
C、归并排序
D、选择排序
归并排序最坏为O(nlogn),其余三种为O(n²)。
*
27.
下列哪种查找算法的最坏时间复杂度是O(n)?
A、哈希查找(无冲突)
B、二分查找
C、顺序查找
D、B树查找
顺序查找最坏要查n次,时间复杂度为O(n)。
*
28.
下列哪种数据结构的插入操作时间复杂度为O(1)?
A、顺序表(数组)
B、单链表头插
C、单链表尾插(无尾指针)
D、二叉排序树
单链表头插只需修改指针,时间复杂度为O(1)。
*
29.
对于一个n个元素的数组,求最大值的时间复杂度是?
A、O(1)
B、O(logn)
C、O(n)
D、O(n²)
需要遍历所有元素,时间复杂度为O(n)。
*
30.
下列哪种数据结构的查找操作时间复杂度为O(1)?
A、哈希表(无冲突)
B、顺序表
C、链表
D、二叉排序树
哈希表无冲突时查找为O(1)。
*
31.
以下算法的时间复杂度为()?
void func(int n)
{
int i=0,s=0;
while (s<=n)
{
i++;
s=s+i;
}
}
A、O(n)
B、O(√n)
C、O(nlog
2
n)
D、O(log2n)
s每次增加i,i从1递增到根号n时,s约等于n,所以循环次数约为根号n,时间复杂度为O(√n)。A、C、D均不符。
*
32.
选择排序的最坏时间复杂度是?
A、O(n)
B、O(logn)
C、O(nlogn)
D、O(n²)
选择排序无论什么情况都要两重循环,时间复杂度为O(n²)。
*
33.
数据结构按逻辑结构可分为两大类,分别是?
线性结构如数组、链表,非线性结构如树、图。
*
34.
下列哪种算法的最坏时间复杂度是O(nlogn)?
A、冒泡排序
B、插入排序
C、归并排序
D、选择排序
归并排序的最坏时间复杂度是O(nlogn)。
*
35.
快速排序的最坏时间复杂度是?
A、O(n)
B、O(nlogn)
C、O(n²)
D、O(logn)
快速排序在极端情况下(如有序数组)最坏为O(n²)。
*
36.
线性结构反映结点间的逻辑关系是?非线性结构反映结点间的逻辑关系是?
线性结构如链表、数组,结点间一对一;非线性结构如树、图,结点间一对多或多对多。
评价对象得分
字体大小
第2章-算法+时间复杂度(常规课)
复制