数据:是客观事物的符号表示。在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。
一个数据元素可有若干个数据项组成数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述。
数据对象:是行之相同的数据元素的集合,是数据的一个子集。
数据结构:是指相互之间具有(存在)一定联系(关系)的数据元素的集合。元素之间的相互联系(关系)成为逻辑结构。数据元素之间的逻辑结构有四种基本类型。
1、集合:结构中的数据元素出了“同属于一个集合”外,没有其他关系。
2、线性结构:结构中的数据元素之间存在一对一的关系。
3、树形结构:结构中的数据元素之间存在一对多的关系。
4、土状结构或网状结构:结构中的数据元素之间存在多堆垛的关系
数据结构的形式定义
数据结构的形式定义是一个二元组:
Data-Structure = (D, S)
其中:D是数据元素的有限级,S是D上关系的优先级
数据元素之间的关系可以使元素之间代表某种含义的自然关系,也可以是为处理问题方便二认为定义的关系,这种自然或认为定义的“关系”成为数据元素之间的逻辑关系,相应的结构成为逻辑结构。
数据结构的存储方式
数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。
元素之间的关系在计算机中有两种不通的表示方式:吮吸表示和费顺序表示。由此得出两种不通的存储结构:顺序存储结构和练市存储结构。
顺序存储结构:用数据元素在存储器中的相对位置来表述数据元素之间的逻辑结构(关系)。
链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer)用了改指针来表示数据元素之间的逻辑结构(关系)。
顺序结构:数据元素存放的地址是连续的
连式存储结构:数据u的地址是否连续没有要求。
数据的逻辑结构和物理结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。
在C语言中,用一位数组表示顺序存储结构;用结构体类型表示链式存储结构。
数据结构的三个组成部分:
逻辑结构:数据元素之间逻辑关系的描述
D_S= (S, S)
存储结构:数据元素在计算机中的存储及其逻辑关系的表现成为数据的存储结构或物理结构。
数据操作:对数据要进行的运算。
逻辑结构所采用的存储结构
数据类型:
数据类型指的是一个值的集合和定义在该值上的一组操作的总称。
数据类型是和数据结构密切相关的一个概念。在C语言中数据类型有:基本类型和构造类型。
数据结构不同于数据类型,也不同于数据对象,他不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。
数据结构的运算
增删改查
抽象数据类型:
抽象数据类型是指一个数学模型以及定义在改模型上的一组操作。
仅是一组逻辑特性没描述,预期在计算机内的表示和实现无关。因此,不论抽象数据类型内部结构如何编话,只要其数学特性不变,都不影响其外不适用。
算法分析初步:
是对特定问题求解方法(步骤)的一种描述,石之灵的有限序列,其中每一条指令表示一个或多个操作。
算法具有一下五个特性:
有穷性:一个算法必须总是在执行又穷步之后结束,且每一步都在又穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
可行性:一个算法是能行的。计算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。
输入:一个算法幽灵个或多个输入,这些输入取自于某个特性的对象集合。
输出:一个算法有一个或多个输出,这些输出视同输入有着某些特定关系的量。
一个算法可以用多种方法描述,主要有:使用自然语言描述;使用形式语言描述;使用计算机程序设计语言描述。
算法和程序是两个不通的概念。一个计算机程序是对一个算法使用某种程序设计语言的鸡兔实现。算法必须可终止意味着不是所有的计算机程序都是算法。
算法的设计要求:
正确性
可读性
健壮性
通用性
效率与存储量需求
算法效率的度量:
算法执行时间需通过一句该算法编制的程序在计算机上运行索小号的时间来度量。其方法通常有两种:事后统计:计算机内部进行执行时间和实际占用空间的统计
问题:必须先运行一句算法编制的程序;以来软硬件环境,容易掩盖算法本身的优劣,没有实际价值。
事前分析:求出该算法的一个时间界限函数。
与此相关的因素有:
依据算法选用何种策略
问题的规模
程序设计的语言
编译程序所产生的既期待吗的质量
机器执行指令的速度。
一个特定算法运行工作量的大小,只依赖于问题的规模(通常用n表示),或者说,他是问题规模的函数。
算法中基本操作重复执行的次数是问题规模n的某个函数,其时间量度记作称作算法的剑姬时间复杂度,简称时间复杂度一般的常用最深层循环内的语句红的源操作的执行频度来表示。
网友评论