数据结构和算法(一)概念
程序设计
程序设计 = 数据结构+算法
数据结构概念
1.数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。
2.数据结构是数据元素之间存在的一种或多种特定关系的集合。
数据结构分为逻辑结构和物理结构
4.逻辑结构:逻辑结构:是指数据对象中数据元素之间的相互关系,也是我们今后最需要关注和讨论的问题
集合结构:数据对象中的元素,同属于一个集合(除此无关系,中国人,同属于中国 )
线性结构:数据元素对象是一对一的关系(人和身份证号码)
树形结构:数据元素之间存在的关系是一种一对多的层次关系(一个人多种身份:一对多)
图形结构:数据元素之间是多对多的关系(人与人认识,就是多对多)
5.物理结构:是指把数据元素存储到计算机的存储器中
存储器主要针对内存而言,外部的存储器包括:硬盘、软盘、光盘、U盘等。外部存储器的数据组织通常用文件结构来描述
数据元素的存储结构形式有两种:顺序存储和链式存储。
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的 (数组,理想意义上的排队,位置决定顺序)
链式存储结构:是把数据元素存放在任意存储单元中,这组存储单元可以是连续的,也可以是不连续的。(银行取号,人的位置是任意,随机的)
数据结构的存储关系并不能反映其逻辑关系,因此需要一个指针指向下一个存放数据元素的地址,这样通过地址就可以找到相关联数据元素位置,将不同位置的元
素连起来。
算法
算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。
算法包括五个基本特征
输入:算法具有零个或多个输入(调用的方法可以有参数或没有参数)
输出:算法至少有一个或多个输出(返回计算结果)
有穷性:算法的执行步骤是有限的,执行规定步骤之后会自动结束,而且每个步骤都在可接受时间完成,不会无限循环。
确定性:算法的每一步是确定的,在固定条件下只有一条执行路径,相同的输入只有唯一的一种结果。
可行性:算法的每一步必须是可行的,每一步都可以执行有限次数完成。
算法设计的要求
1.正确性:算法至少应该具有输入输出和加工处理无歧义性,能正确反映问题的需求、能够得到问题的正确答案。
分为四个层次:
1、算法程序没有语法错误
2、算法程序对于合法输入能够产生满足要求的输出
3、算法程序对于非法输入能够产生满足规格的说明(提示要求正确的输入)
4、算法程序对于故意刁难的输入都有满足要求的输出结果(提示输入错误等信息)
2.可读性:便于阅读理解和交流,加上注释
3.健壮性:当输入 数据不合法的时候,算法也能做出相关处理,而不是产生异常,奔溃或莫名其妙的结果。
4.时间效率高和存储量低
图解关系