数据结构 C#语言版 第1章 绪论(1)
数据类型可分为两类:一类是非结构的原子类型,另一类是结构类型,结构类型的成分可以使非结构的也可以是结构的。
数据结构(data structure)
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构(Structure)。根据数据元素之间关系的不同特性,通常有4类基本数据结构:
(1)集合(Set):该结构中数据元素存在“同属一个集合”的关系外,不存在任何其他关系
(2)线性结构(Linear Structure):该结构中的数据元素存在着一对一的关系。
(3)树形结构(Tree Structure):该结构中的数据元素存在着一对多的关系。
(4) 图状结构(Graphic Structure):该结构中的数据元素存在着多对多的关系。
数据的存储结构包括顺序存储结构和链式存储结构两种。
顺序存储结构(Sequence Storage Structure)是通过数据元素在计算机存储器中的相对位置来表示出数据元素的逻辑关系,一般把逻辑上相邻的数据元素存储在物理位置相邻的存储单元中。因为数据所分配的存储空间是连续的,所以数组天生就具有实现数据顺序存储结构的能力。
链式存储结构(Linked Storage Structure)对逻辑上相邻的数据元素不要求其存储位置必须相同。链式存储结构中的数据元素称为结点(Node),在结点中附近设地址域(Address Domain)来存储与该节点相邻的结点的地址来实现结点间的逻辑关系。这个地址称为引用(Reference),这个地址称为引用域(Reference Domain)。
评价一个算法优劣的主要标准如下:www.zzzyk.com
1. 正确性 执行结果满足要求 最重要最基本的标准
2. 可读性 为了人阅读和交流
3. 健壮性 具有很强的容错能力
4. 运行时间
5. 占用空间
通常把算法在运行过程中临时占用的存储空间的大小叫算法的空间复杂度(Space Complexity)。算法的空间复杂度比较容易计算,它主要包括局部变量所占用的存储空间和系统为实现递归所使用的堆栈占用的存储空间。
一个算法的时间复杂度(Time Complexity)是指算法的运行时间与问题规模的对应关系。为了便于比较同一问题的不同算法,通常把算法中的基本操作重复执行的次数(频度)作为算法的时间复杂度。
如果一个算法没有循环语句,则算法中基本操作的执行频度与问题规模n无关,记作O(1),也称为常数阶。如果算法只有一个一重循环,则算法的基本操作的执行频度与问题规模n呈线性增大关系。记作O(n),也叫线性阶。
摘自 xufei96的专栏
补充:软件开发 , C# ,