第一章 绪论
1. 解释以下概念:数据结构、逻辑结构、存储结构、四类基本数据结构、算法、算法的特性、算法的时间复杂度、O的定义。
答:数据结构- 指互相之间存在一种或多种特定关系的数据元素的集合;
逻辑结构- 对数据之间逻辑关系的描述;
存储结构- 数据在计算机中的表示称为数据的物理结构,又称存储结构;
四类基本数据结构- 集合结构、线性结构、树形结构、图形结构;
算法- 对特定问题的求解方法的一种描述;
算法的特性- 有穷性、确定性、可行性、输入、输出;
算法的时间复杂度- T(n)=O(f(n)),该式表示随着问题规模n的增大,算法执行时间的增长率与f(n)的增长率相同.O(f(n))称作算法的渐进时间复杂度,简称时间复杂度;
O的定义- 表示数量级;
2. 理解以下关系:数据结构与算法的关系、数据结构与抽象数据类型的关系、数据结构和算法与问题求解的关系。
答:数据结构与算法的关系- 算法是研究数据结构的重要途径,在某一类型数据结构上,总要涉及对其元素的运算,只有通过对这些运算的研究,才能清楚的理解数据结构的定义和作用;
数据结构与抽象数据类型的关系(ADT)- 由用户定义,用来表示应用问题的数据模型,它由基本的数据类型组成,并包括一组相关的操作;
数据结构和算法与问题求解的关系- 问题求解就是在计算机中建立一个解决问题的模型,在这个模型中,数据结构表示了需要处理的实际对象,算法表示模拟对象领域中的求解过程。
3. 举一个数据结构的例子,说明其逻辑结构、存储结构和运算这三方面的内容。
答:例如一个数据表,称它为一个数据结构。逻辑结构:数据表是一个二元线性关系,每个表有若干条记录,每个记录有若干字段;存储结构:数据表存储在电脑的硬盘中,当使用时,移入内存单元中;运算:通常需要查找、增加、删除、修改等操作;
4. 设有两个算法在同一机器上运行,其执行时间分别为100n2和2n,要使前者快于后者,n至少要多大?
答:问题:2n-100n2>0,
结果:15,即n为15时前者快于后者。
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6
7
8 namespace 指数方程
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 int intExpA, intExpB;
15 intExpA = 1;
16 for (int i = 1; ; i++)
17 {
18 intExpA = intExpA * 2;
19 intExpB = 100 * i * i;
20 if (intExpA > intExpB)
21 {
22 Console.WriteLine(i.ToString());
23 break;
24 }
25 }
26 Console.ReadKey();
27
28 }
29 }
30 }
5. 设n为正整数。确定下列程序段中标记☆的语句的频度。
(1) for (int i = 0; i <= n; i++)
for (int j = 0; i <= i; j++)
☆ S;
答:上题的频度为 1+2+3+...+n+(n+1),为一等差数列,化简为 ((n+1)+1)*n/2;
(2) x=n;y=0;
While (x>=(y+1)*(y+1)) {
☆ y++:}
答:上题的频度为 n的平方根-1;
(3) i=1;j=0;
while (i+j<=n) {
☆ if(i>j) j++;
Else i++;
}
答:如果n为奇数,频度为:n/2+1,如果n为偶数,频度为:n/2
(4) x=91;y=100;
while (y>0) {
☆ if (x>100) {x-=10;y--}
Else x++;
}
答:上题中☆部分的频度是100
posted on 2012-02-09 11:14 darrenzhang 阅读(538) 评论(0) 编辑 收藏 举报