您的位置:首页 > 理论基础 > 数据结构算法

C# 数据结构第一章

2013-05-03 10:45 204 查看
绪论:

数据是外部世界信息的计算机化,是计算机加工处理的对象。用计算机处理数据时,需解决的四个问题。

1.如何在计算机中方便,高效地表示和组织数据。

2.如何在计算机存储器中存储数据。

3.如何对存储在计算机中的数据进行操作。

4.必须解决每种数据结构的性能特征。

1.1 数据结构

学习数据结构的必要性,要想提高程序设计水平,最重要的是多看别人写的程序,多思考。

1.1.2 基本概念和术语

1,数据。数据是外部世界信息的载体。

2,数据元素:是数据的基本单位。被称为元素,节点,顶点,记录。

数 据 项:是不可在分割的,含有独立意义的最小数据单位,也成为 字段或者 域。

数据项分为两种,一种是初等项,学生的姓名,籍贯等,在处理时不能进行再分割。

另一种叫做组合项,如,成绩可以分为,数学,物理,等更小的项。

3,数据对象:是性质相同的数据元素的集合,是数据的一个子集。

4,数据类型:是高级程序设计语言中的概念,是数据的取值范围和对数据进行操作的总和。数据类型规定了程序中对象的特性。

数据类型可分为两类:1.非结构的原子类型。2.结构类型。

5.数据结构(data structure):一种或多种特定关系的数据元素的集合。元素之间都不是孤立的。存在着一定的关系,这种关系成为:结构。通常有4类基本数据结构。

1.集合。同属于一个集合。

2.线性结构:一对一的关系。

3.树形结构:一对多的关系。

4.图壮结构:多对多的关系。



数据结构简记:DS。

DS=(D,R)

D:是数据元素的有限集合

S:是数据元素之间关系的有限集合。

数据的物理结构又称存储结构,是数据在计算机中的表示又称映像和存储。

数据的存储结构包括顺序存储和链式存储两种,顺序存储结构是通过数据元素在计算机存储器中的相应位置来表示出数据元素的逻辑关系。C#用数组来实现顺序存储结构。

链式存储结构。对逻辑上相邻的数据元素不要求存储位置必须相邻,链式存储结构中的数据元素称为结点。在结点中附设地址域来存储与改结点相邻的结点地址来实现结点间的逻辑关系。被称为引用。这个地址域称为引用域。

1.2 算法。

算法与数据结构和程序的关系非常的密切。进行程序设计时。先确定相应的数据结构,然后根据数据结构和问题的需要设计相应的 算法。

1.2.1 算法的特性

特性1.有穷性。即算法的执行时间是有限的。

2.确定性:每一步必须有确切的含义。无二义。

3.输入。一个算法具有0个或多个输入。

4.输出。一个算法具有0个或多个输出,并且和输入之间存在着某种特定的关系。

5.能行性。算法中的每一步都可以通过已经实现的基本运算的有限次运行来实现。

1.2.2 算法的评价标准

评价一个算法优劣标准如下特性。

1.正确性。最基本的标准。

2可读性。

3 健壮性。一个算法应该有很强的容错能力当输入不合法的数据时,算法应当能做适当的处理。

4 运行时间。执行时间越短,性能越好。

5 占用空间。

1.2.3 算法的时间复杂度。

一个算法的时间复杂度是指该算法的运行时间与问题规模的对应关系。一个算法是由控制结构和原操作构成的。通常把算法中基本操作重复执行的次数作为算法的时间复杂度。

1.3.1 集合

集合是由一些确定的,彼此不同的成员或者元素构成的一体整体。集合中成员的个数称为集合的基数。

2.集合的表示法

1)穷举法:S={2,4,6,8,10};

2)描述法:S={X|X是偶数,且0<=x<=10}

3.集合的特性。

1.确定性:任何一个对象都能被确切地判断是集合的元素或不是。

2.互异性:集合中的元素不能重复

3.无序性:集合中的元素与顺序无关。

1.3.2 常用的数学术语

计量单位:

阶乘函数:

取上整合取下整:

取模操作符:表示为 n%m。

1.3.3 对数。

用途:许多程序需要对一些对象进行编码,那么表示n个编码至少需要多少。

二。对数普遍用于分析把问题分解为更小问题算法。

1.3.递归

如果一个算法直接调用自己或间接地调用自己,叫做递归。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: