代码改变世界

有关数据结构基础知识(数据结构 严蔚敏版)

2015-12-30 15:27  迷你天才  阅读(419)  评论(0编辑  收藏  举报

1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科

2. 研究包括逻辑结构和存储结构

   1) 逻辑结构(从具体问题抽象出来的数学模型)分为

         集合结构 线性结构 树结构 图结构(分类依据是元素之间的关系不同)

   2)存储结构(也称物理结构 逻辑结构在计算机的存储表示)分为

         顺序存储结构 链式存储结构

3. 抽象数据类型是由用户定义 表示应用问题的数学模型 以及定义在这个模型一组操作的总称 包括数据对象 数据对象上关系的集合 数据对象基本操作的集合

4. 算法(为了解决某类问题而规定的一组有限长的操作序列)

     算法的五个特性:有穷性 确定性 可行性 输入和输出

     算法优劣的评价:正确性 可读性 健壮性(鲁棒性) 高效性

5. 算法分析的两个主要方面

     频度:一条语句重复执行次数;

     规模:算法求解问题的输入量;

  算法时间复杂度(即算法的运算时间 表示方法T(n)=O(f(n)))

          常见的时间复杂度排列顺序  

     常数阶 对数阶 线性阶 线性对数阶 平方阶 立方阶 k次方阶

  算法空间复杂度(表示方法S(n)=O(f(n)))

6.一些术语

  1. 数据:用客观事物的符号表示 是所能输入到计算机中并被计算机程序处理的符号的总称
  2. 数据元素:是数据的基本单位在计算机中通常作为一个整体处理和考虑
  3. 数据项:是组成数据的 有独立含义的 不可分割的最小单位
  4. 数据对象:是性质相同的数据元素的集合,是数据的子集
  5. 数据结构:是相互之间存在一种或多种特定关系的数据关系的集合
  6. 数据类型:一个值的集合和定义在这个值集上的一组操作的总称

附几道教科书上的习题:

1.与数据元素本身的形式、内容、相对位置、个数无关的是数据的(   )。

A.存储结构               B.存储实现

C.逻辑结构               D.运算实现

 

 

2.以下说法正确的是(   )。解释:数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合

A.数据元素是数据的最小单位

B.数据项是数据的基本单位

C.数据结构是带有结构的各数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

 

3.(1)x=90; y=100; 

while(y>0)

if(x>100)

 {x=x-10;y--;}

else x++;

答案:O(1)

解释:程序的执行次数为常数阶。

 

(2)for (i=0; i<n; i++)

for (j=0; j<m; j++)

a[i][j]=0;

答案:O(m*n)

解释:语句a[i][j]=0;的执行次数为m*n

 

(3)s=0;

     for i=0; i<n; i++)

for(j=0; j<n; j++)

         s+=B[i][j];

sum=s;

答案:O(n2)

解释:语句s+=B[i][j];的执行次数为n2

 

(4)i=1;

     while(i<=n)

        i=i*3;

答案:O(log3n)

解释:语句i=i*3;的执行次数为 log3n

 

(5)x=0;

for(i=1; i<n; i++)

   for (j=1; j<=n-i; j++)

x++;

答案:O(n2)

解释:语句x++;的执行次数为n-1+n-2+……+1= n(n-1)/2。

 

(6)x=n; //n>1

y=0;

while(x≥(y+1)* (y+1))

    y++;

答案:O(x^(1/2))

解释:语句y++;的执行次数为 x^(1/2)。