1.1 数据结构的讨论范畴

程序设计:为计算机处理问题编制一组指令集

算法:处理问题的策略

数据结构:问题的数学模型

例如:数值计算的程序设计问题

结构静力分析计算--线性代数方程组
 

非数值计算的程序设计问题

例:求一组(n个)整数中的最大值

算法:基本操作是“比较两个数的大小”

模型:

例:计算机对弈

算法:对弈的规则和策略

模型:

例:足协的数据库管理

算法:需要管理的项目 如何管理 用户界面

模型:

概括的说:

        数据结构描述现实世界尸体的数学模型(非数值计算)及其上的操作在计算机中的表示和实现

1.2数据与数据结构

一、数据与数据结构

数据:所有能被输入到计算机中,且被计算机处理的符号的集合计算机操作的对象的总称

是计算机处理的信息的某种特定的符号表示形式

数据元素:数据中的一个“个体”,数据结构中讨论的基本单位

数据结构:带结构的数据元素的集合(非孤立的,存在关系的)

数据的逻辑结构可归为以下四类:

线性结构,树形结构,图状结构,集合结构

数据结构的形式定义为:

数据结构是一个二元组

         Data_Structures=(D,S)                   (逻辑结构)

其中:D是数据元素的有限集,S是D上关系的有限集。

数据的存储结构-----逻辑结构在存储器中的映像

数据元素的映像方法:

顺序映像 以存储位置的相邻表示后继关系

链式映像 以附加信息(ptr)表示后继关系

二 数据类型

在用高级程序语言编写的程序中,必须对程序中出现的每个变量,常量或表达式,明确的说明它们所属的数据类型。

数据类型是一个值的集合和定义在此集合上的一组操作的总称。

三 抽象数据类型

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

两个重要特征:数据抽象  强调本质的特征,其所能完成的功能以及它和外部用户的接口

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

 描述方法(D,S,P)D数据对象 S是D上的关系 P基本操作集、

1.3 算法和算法的衡量

一.算法

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

1.有穷性        有穷步骤 有限时间

2.确定性        对每种情况下所对应的操作都有确切的规定

3.可行性        所有操作都必须足够基本

4.有输入        

5.有输出

二.算法设计的原则

1.正确性  a.程序中不含语法错误

                b.程序对于几组输入数据能够得出满足要求的结果

                c.对精心选择的典型的苛刻的有刁难性的几组输入数据能够得到满足要求的结果

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

2.可读性 易于理解主要为了人的阅读与交流

3.健壮性 输入非法时 应有相应的处理

4.高效率与低存储量的需求

                效率指的是算法的执行时间

                存储量指的时算法执行过程中所需的最大存储空间

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

通常有两种衡量算法效率的方法

事后统计法,事前分析法(主要)

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

1.算法选用的策略

2.问题的规模

3.编写的程序语言

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

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

算法执行时间的增长率和f(n)的增长率相同,则可记作:

T(n)=O(f(n))  称为T(n)为算法的时间复杂度

算法=控制结构+原操作(固有数据类型的操作)

算法的执行时间=原操作的执行次数×原操作的执行时间

基本操作的重复次数为计算执行时间准则

语句的执行次数为语句的频度

四.算法的存储空间需求

算法的空间复杂度

S(n ) =O(g(n))

表示随着问题规模n的增大,算法运行所需存储量的增长率与g(n)的增长率相同

算法的存储量包括:

1.输入数据所占空间

2.程序本身所占空间

3.辅助变量所占空间(若输入数据所占空间只取决于与问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值