1.1 数据结构的讨论范畴

本文深入探讨了程序设计的核心要素,包括算法、数据结构和数据类型的定义与应用。算法被定义为解决问题的有限操作序列,强调有穷性、确定性和可行性等特性。数据结构则描述了数据元素之间的关系,如线性结构、树形结构等,并分为逻辑结构和存储结构。数据类型是值的集合和在其上操作的总称,而抽象数据类型进一步封装了数据和操作。此外,文章还讨论了算法效率的衡量方法,如时间复杂度和空间复杂度,以及算法设计的原则,如正确性、可读性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

算法:处理问题的策略

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

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

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

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

例:求一组(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.辅助变量所占空间(若输入数据所占空间只取决于与问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间)

Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值