7.数据类型 数据类型是指程序设计语言中各变量可取的数据种类。数据类型 是高级程序设计语言中的一个基本概念,它和数据结构的概念密 切相关。 一方面,在程序设计语言中,每一个数据都属于某种数据类型。 类型明显或隐含地规定了数据的取值范围、存储方式以及允许进 行的运算。可以认为,数据类型是在程序设计中已经实现了的数 据结构 另一方面,在程序设计过程中,当需要引入某种新的数据结构时 总是借助编程语言所提供的数据类型来描述数据的存储结构
7.数据类型 数据类型是指程序设计语言中各变量可取的数据种类。数据类型 是高级程序设计语言中的一个基本概念,它和数据结构的概念密 切相关。 一方面,在程序设计语言中,每一个数据都属于某种数据类型。 类型明显或隐含地规定了数据的取值范围、存储方式以及允许进 行的运算。可以认为,数据类型是在程序设计中已经实现了的数 据结构。 另一方面,在程序设计过程中,当需要引入某种新的数据结构时, 总是借助编程语言所提供的数据类型来描述数据的存储结构
8.算法 简单地说就是解决特定问题的方法(关于算法的严格定义,在此 不作讨论)。特定的问题可以是数值的,也可以是非数值的 解决数值问题的算法叫做数值算法,科学和工程计算方面的算法 都属于数值算法,如求解数值积分,求解线性方程组、求解代数 方程、求解微分方程等。 解决非数值问题的算法叫做非数值算法,数据处理方面的算法都 属于非数值算法。例如各种排序算法、査找算法、插入算法、删 除算法、遍历算法等。 了数值算法和非数值算法并没有严格的区别
8.算法 简单地说就是解决特定问题的方法(关于算法的严格定义,在此 不作讨论)。特定的问题可以是数值的,也可以是非数值的。 解决数值问题的算法叫做数值算法,科学和工程计算方面的算法 都属于数值算法,如求解数值积分,求解线性方程组、求解代数 方程、求解微分方程等。 解决非数值问题的算法叫做非数值算法,数据处理方面的算法都 属于非数值算法。例如各种排序算法、查找算法、插入算法、删 除算法、遍历算法等。 数值算法和非数值算法并没有严格的区别
般说来,在数值算法中主要进行算术运算,而在非数值算法中 主要进行比较和逻辑运算。另一方面,特定的问题可能是递归的, 也可能是非递归的,因而解决它们的算法就有递归算法和非递归 算法之分。从理论上讲,任何递归算法都可以通过循环,堆栈等 技术转化为非递归算法
一般说来,在数值算法中主要进行算术运算,而在非数值算法中 主要进行比较和逻辑运算。另一方面,特定的问题可能是递归的, 也可能是非递归的,因而解决它们的算法就有递归算法和非递归 算法之分。从理论上讲,任何递归算法都可以通过循环,堆栈等 技术转化为非递归算法
1.5算法和算法的描述 1.5.1算法 算法是执行特定计算的有穷过程。这个过程有5个特点: 1.动态有穷:当执行一个算法时,不论是何种情况,在经过了 有限步骤后,这个算法一定要终止。 2确定性:算法中的每条指令都必须是清楚的,指令无二义性。 3输入:具有0个或0个以上由外界提供的量 4输出:产生1个或多个结果。 5.可行性:每条指令都充分基本,原则上可由人仅用笔和纸在 有限的时间内也能完成。 注意:算法和程序是有区别的,即程序未必能满足动态有穷。在本 书中,我们只讨论满足动态有穷的程序,因此“算法”和 是通用的
1.5 算法和算法的描述 1.5.1 算法 算法是执行特定计算的有穷过程。这个过程有5个特点: 1.动态有穷:当执行一个算法时,不论是何种情况,在经过了 有限步骤后,这个算法一定要终止。 2.确定性:算法中的每条指令都必须是清楚的,指令无二义性。 3.输入:具有0个或0个以上由外界提供的量。 4.输出:产生1个或多个结果。 5.可行性:每条指令都充分基本,原则上可由人仅用笔和纸在 有限的时间内也能完成。 注意:算法和程序是有区别的,即程序未必能满足动态有穷。在本 书中,我们只讨论满足动态有穷的程序,因此“算法”和 “程序” 是通用的
1.52算法的描述 一个算法可以用自然语言、数字语言或约定的符号来描述,也可 以用计算机高级程序语言来描述,如 Pascal语言、C语言或伪代码 等。本书选用C语言作为描述算法的工具。现简单说明C语言的语 法结构如下:
1.5.2 算法的描述 一个算法可以用自然语言、数字语言或约定的符号来描述,也可 以用计算机高级程序语言来描述,如Pascal语言、C语言或伪代码 等。本书选用C语言作为描述算法的工具。现简单说明C语言的语 法结构如下: