Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6472
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-13 07:15
文章分类

全部博文(2)

文章存档

2013年(2)

分类: 高性能计算

2013-10-24 17:26:12

1.数据结构到底在研究什么?
      我们在研究很多抽象问题时,需要提炼出一个数学模型。这个数学模型可以是数值的,也可以是非数值的。但是,大部分的时候,我们研究的数学模型是非数值的。我们研究数据结构就是这些非数值形的操作对象以及这些对象间的关系。比如,我们在图书馆中查询图书时,通过书的序列号去定位一本书的情况很少,更多的时候,我们的通过查询书一方面的属性(作者,出版社,类型等等)来找到我们想要得到的结果。因此,我们系统中存储这本书的信息时,会包括以上提到的那些属性。采用多对一方式(多个属性的描述确定一本书,也就是通过多个属性来确定一个实体)来处理图书查询这个实际问题,而不是单纯的只存储他的序列号来确定一本书。我们数据结构研究的就是在计算机中存下这一本本书的信息(数据元素),同时还能存储书与书之间的关系(数据元素之间的关系)。
2.图表说明


3.抽象数据类型
  我们知道在java或者C中任意给定的一个数据类型,比如说int,假设我们声明了一个变量int a ,那么无形中这个a的取值范围和可以对他进行的操作就是确定的了。同样我们的抽象数据类型ADT只要是确定的,那么就规定了这个类型的“变量”可以进行操作。我还是用图片的方式说明。

4.时间复杂度

T(n) = O(f(n)),就是说程序执行的相率和基本操作f(n)在n的增长率(关于n的导数是相通的)。如果能得到基本操作关于n的一个函数,那么就可以求出T关于n的导数,但是,基本操作的次数有时会随着输入的数据的不同而不同,因此,他是不确定的。那么我们一般采用的是执行次数最多的那种情况下,对应的基本操作的次数。另外一方面就是,我们会对f(n)这个关于n的函数进行挑选,只选出能反应n的增长率或阶的那一项,来代表T和n的关系。
  



阅读(460) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:c语言中连续输入出现问题

给主人留下些什么吧!~~