数据结构和算法
数据结构是一门研究非数值计算程序设计问题中的操作对象,和他们之间的关系和操作相关的问题的学科
程序设计=数据结构+算法
简单来说数据结构就是数据元素之间存在的相互之间一种过多种特定关系的集合
传统上来说,我们把数据结构分为物理结构和逻辑结构。
逻辑结构:是指数据对象中数据元素之间的关系
1)集合结构:集合结构中的元素除了属于同一集合外,元素之间没有其他关系
2)线性结构:数据元素之间的是一对一的关系
3)树形结构:数据元素之间存在一对多的层次关系
4)图形结构:数据元素之间是多对多的关系
物理结构:是指数据的逻辑结构在计算机中物理的存储形式(如何把数据元素存储到计算机的存储器中,如内存,硬盘等)
1)顺序存储:是把数据元素存储在地址连续的存储单元中,其数据间的物理结构和逻辑结构是一致的(例:数组)
2)链式存储:是把数据元素存储在任意的存储单元中,这些存储单元可以是不连续的,因此需要一个指针来存储数据元素的地址
算法:算法是解决特定问题求解步骤的描述,在计算器中表现为指令的有限序列,每条指令表示一个或多个操作。
算法的五个基本特征:输入,输出,有穷性,确定性和可行性
1)输入:算法有零个或者多个输入
2)输出:算法至少有一个或多个输出
3)有穷性:算法在执行有限步骤后,自动结束而不会出现无限循环
4)确定性:算法的每一个步骤都有确定的含义,不会出现二义性(算法在一定条件下只有一天执行路径,相同的输入只能有唯一的输出结果)
5)可行性:算法的每一步都都必须是可行的,即可以通过执行有限次数完成
算法设计的要求:正确性,可读性,健壮性,时间效率高和存储量低