数据结构 第一章 绪论

用计算机求解任何问题都离不开程序设计,程序设计的实质是数据表示和数据处理。
一,数据结构基本概念
1.数据是信息的载体,是计算机程序处理的原料。

可以将数据分为两大类:一类是整数实数等数值数据,一类是文字,图像声音,图形等非数值数据。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。构成数据元素的不可分割的最小单位称为数据项。
数据结构是指相互之间存在一定关系的数据元素的集合。数据元素是讨论数据结构时涉及的最小的数据单位。按视点不同,数据结构分为逻辑结构和存储结构。
数据的逻辑结构是指数据元素之间逻辑关系的整体。根据数据元素之间的逻辑关系的不同,数据结构分为四类:
(1)集合:数据元素之间就是属于一个集合。
(2)线性结构:数据元素之间存在着一对一的线性关系。
(3)树结构:数据元素之间存在着一对多的层次关系。
(4)图结构:数据元素之间存在着多对多的任意关系。
数据的存储结构通常有两种,顺序存储结构和链接存储结构。
数据类型是一组值的集合以及定义于这个值集上的一组操作的总称。
抽象数据类型是一个数据结构以及定义在该结构上的一组操作的总称。
(二)算法及算法分析
1,算法是对特定问题求解步骤的一种描述,是指令的有限序列。
算法必须满足5个重要特性:输入,输出,有穷性,确定性,可行性。
一个“好”算法还要具备:正确性,鲁棒性,简单性,抽象分级,高效性。

鲁棒性:也称健壮性。算法对非法输入的抵抗能力,即对于错误的输入,算法能够识别并作出处理,而不是产生错误动作或者陷入瘫痪。
常用的描述算法的方法有:自然语言,流程图,程序设计语言和伪代码等。

(1)自然语言:优点是容易理解,缺点是容易出现二义性,并且算法很冗长。

(2)流程图:优点是直观易懂,缺点是严密性不如程序语言,灵活性不如自然语言。

(3)程序设计语言描述的算法能由计算机直接执行,而缺点是抽象性差,是算法设计者拘泥于描述算法的具体细节,忽略了好算法和正确逻辑的重要性。

(4)伪代码是介于自然语言和程序语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。
2.度量算法效率的方法
(1)事后统计,先将算法实现,然后输入适当数据运行,测算其时间和空间开销。
缺点:编写程序实现算法将花费较多的时间和精力。所得实验结果依赖于计算机软硬件等环境因素,有时容易掩盖算法本身的优劣。
(2)事前分析估算,渐进复杂度。
算法的时间复杂度,只考察当问题规模充分大时,算法中基本语句的执行次数在渐进意义下的阶。通常用大O记号表示。
算法的空间复杂度是指在算法的执行过程中,需要的辅助空间数量。辅助空间是除算法本身和输入输出数据所占的空间外,算法临时开辟的存储空间。

通常记作:S(n)=O(f(n))

其中n为问题规模。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值