第一章 绪论

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时前者快于后者。

 

View Code
 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编辑  收藏  举报

导航