课1

algorithm + data structures = programs

(处理问题的策略 + 问题的数学模型) = 程序设计:为计算机处理问题的一组指令集

数据结构的定义:描述 现实世界实体的数学模型 的表示和实现(带结构的数据元素的集合)

数据:计算机处理的符号(表示信息)的集合

数据元素:集合中的个体,数据项的集合

数据项:数据结构中讨论的最小单位

数据的四类逻辑结构:

1、线性结构

2、树形结构

3、图状结构

4、集合结构

数据结构的形式定义为:

数据结构是一个二元组 Data_Structure = (D, S) (D是数据元素的有限集,S是D上关系的有限集)

数据的存储结构:数据逻辑结构在存储器中的映象

数据元素的映象方法

关系的映象方法:(表示<x,y>的方法)

1、顺序映象:以存储位置的相邻表示后继关系(y的存储位置和x的存储位置之间差一个常量C)

                        C是一个隐藏值,整个存储结构中只含有数据元素本身的信息

2、链式映象:以附加信息(指针)表示后继关系

                        需要用一个和x在一起的附加信息指示y的存储位置

用高级语言进行程序设计是已经有的数据类型描述数据的存储结构,例如typedef int Long_int[3]

数据类型

定义:是一个值的集合和定义在此集合上的一组操作的总称

抽象数据类型 (Abstract Data Type,简称ADT)

定义:是指一个数学模型以及定义在此数学模型上的一组操作

 ADT有两个重要特征:

1、数据抽象

用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)

 2、数据封装

将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节  

 用抽象数据类型来描述数据结构

抽象数据类型的描述方法

抽象数据类型可用(D, S, P)三元组表示

其中,D是数据对象,S是D上的关系集,P是对D的基本操作集

抽象数据类型的表示和实现

抽象数据类型需要通过固有数据类型(高级编程语言中已事项的数据类型)来实现

算法和算法的衡量

一、算法

算法是为解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特征:

1、有限性

有穷步骤,有限时间

2、确定性(无二义性)

对于每种情况下,算法都有确切的规定

只要条件确定,只有一条执行路径

3、可行性

算法中的所有操作都必须做够基本,都可以通过已经实现的基本操作运算有限次实现之

4、有输入

算法加工的对象

5、有输出

算法进行信息加工的结构

算法设计的原则

1、正确性

a、程序中不含语法错误;b、程序对于几组输入数据能够得出满足要求的结构;

c、程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;

d、程序对于一切合法的输入数据都能得出满足要求的结果;

2、可读性

算法只要是为了人的阅读与交流,其次才是计算机的执行

1)、易于人得理解

2)、复杂程序易于隐藏错误和难以调试

3、健壮性

输入的数据非法时,算法进行相应处理。

处理错误的方法不应该时中断程序的执行,而应是返回一个表示错误或错误性质

的值,以便在更高的抽象层次上进行处理。

4、高效率与低存储量需求

算法的执行时间,算法执行过程中所需的最大存储空间,两者都与问题的规模有关。

 三、算法效率的衡量方法和准则

1、身后统计法

缺点:1、必须执行程序 2、其它因素掩盖算法本质

2、事前分析估算法

和算法执行时间相关的因素:

1、算法选用的策略

2、问题的规模

3、编写程序的语言

4、编译程序产生的机器代码的质量

5、计算机执行指令的速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值