数据结构绪论

数据结构是用来处理非数值计算问题的数学模型,研究其中的操作对象以及操作对象之间的关系的学科。

数据元素是数据的基本单位,例如图中的一个顶点,树中的一个分支,信息表中的一名学生记录。

数据项组成数据元素,例如学生信息表中的学号,姓名和性别。

数据对象是性质相同的数据元素的集合,是数据的一个子集。例如,学生信息表,26个英文字母的集合。

数据结构是相互之间存在一种或者多种特定关系的数据元素的集合。分为逻辑结构存储结构

逻辑结构从逻辑关系上描述数据,与数据的存储无关,是从具体问题抽象出来的数学模型。两个要素:数据元素、关系。四种基本结构:集合、线性、树、图。

存储结构(物理结构)是数据对象在计算机中的存储表示,数据元素在计算机内用一个结点来表示。分为顺序存储结构和链式存储结构。

(1)顺序存储结构

通常用数组来表述。

(2)链式存储结构

结点后面加下一个接点的首地址,即指针。

数据类型:整形,实型、字符型、数组等。

抽象数据类型(Abstract Data Type,ADT)是用户定义,表示应用问题的数学模型。包括三部分:数据对象、数据对象上关系的集合、对数据对象基本操作的集合。格式如下:

ADT抽象数据类型名{

    数据对象:<数据对象的定义>

    数据关系:<数据关系的定义>

    基本操作:<基本操作的定义>

}ADT 抽象数据类型名

基本操作定义格式为:

基本操作名(参数表)

    初始条件:<描述>

    操作结果:<描述>

算法是为了解决某类问题而规定的一个有限长的操作序列。算法具有五个特性:有穷性、确定性、可行性、输入和输出。一个算法的优劣应该从以下四方面来评价:正确性、可读性、健壮性和高效性。

算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度,以考察算法的时间和空间效率。一般情况下,鉴于运算空间较为充足,故将算法的时间复杂度作为分析的重点。算法执行时间的数量级称为算法的渐近时间复杂度,T(n)= 0(f(n)),它表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,简称时间复杂度。

算法的时间复杂度取决于(   D  )。

A.问题的规模     B.待处理数据的初态      C.计算机的配置       D.A和B

算法的时间复杂度不仅与问题的规模有关,如某些排序的算法,其执行时间与待排序记录的初始状态有关。称算法在最好情况下的时间复杂度为最好时间复杂度,指的是算法计算量可能达到的最小值;称算法在最坏情况下的时间复杂度为最坏时间复杂度,指的是算法计算量可能达到的最大值;算法的平均时间复杂度是指算法在所有可能情况下,按照输入实例以等概率出现时,算法计算量的加权平均值,通常只讨论算法在最坏情况下的时间复杂度

求时间复杂度

 x=n;//n>l

y=0;

while (x>=(y+l) *(y+l))

y++;

解:x>=(y+l) *(y +l)  =》      y<=x^0.5-1    =》   y <= n^0.5     =》   o(n^0.5)

1.可以用(抽象数据类型)定义一个完整的数据结构   (数据对象,数据关系,基本操作集)

2.以下属于逻辑结构的是(C)

A.顺序表       B. 哈希表      C. 有序表         D.单链表

解:有序表指关键字有序的线性表,仅表述逻辑关系。而顺序表和哈希表表示顺序存储结构的线性表,单链表表示链式存储结构的线性表。

3.以下与存储结构无关的术语是(D)

A.循环队列        B.链表          C.哈希表       D.栈

循环队列是用顺序表表示的队列。

4.链式存储设计时,结点内的存储单元地址(一定连续   结点内

5.下面说法错误的是(A)

A.算法原地工作的含义是算法不需要任何额外的辅助空间     

B.在相同规模n下,复杂度为o(n)的算法在时间上总是优于o(n^2)的算法

C.所谓时间复杂度,是指最坏情况下估算算法执行时间的一个上界

D.同一个算法,实现语言的级别越高,执行效率越低。

解:1.算法原地工作是指算法所需的辅助空间是常量。4.教材原话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值