数据结构复习题——填空题与程序填空题

填空题

算法效率的比较

假设为解决某问题而设计的若干算法的时间复杂度分别为:

A) O(n)

B) O(n2)

C) O(log2n)

D) O(nlog2n)

E) O(2n)

F) O(√n)

G) O(n!)

H) O(1)

I) O(n√n)

J) O(n^n)

这些算法按效率由高到低的顺序是 HCFADIBEGJ


基本术语

算法 是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。


算法的量度

(1) 算法所需执行时间的量度称为 时间复杂度

(2) 算法所需存储空间的量度称为 空间复杂度


在长度为n的顺序表L中将所有值为x的元素替换成y,该算法的时间复杂度为 O(n)


顺序表 - 地址计算

假设顺序表第 1 个元素的内存地址是 100,每个元素占用 2 字节内存空间,则第 5 个元素的内存地址是108

程序填空题

测量算法的运行时间

下面的程序测量某个函数 F 的运行时间。

请在空白处填写适当内容,完成该程序。

#include

#include < time.h >

int F(int x);

int main()

{

int x, y;

clock_t t1, t2;

double t;

scanf("%d", &x);

t1 = clock() ;

y = F(x);

t2 = clock() ;

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

printf("%d\n", y);

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

return 0;

}

int F(int x)

{

...(略)...

}

输入样例

25

输出样例

3712
It took 0.18 second(s)

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


顺序表插入操作

#include

using namespace std;

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