程序设计=数据结构+算法
数据结构
一:数据
数据:描述客观事物的符号,是计算机可操作的对象,是能被计算机识别,并输入给计算机处理是符号集合。它分为数值类型和非数值类型(如图片、音乐等)
↓
数据元素:是组成数据的、有一定意义的基本单位。如在人类这个集合里,人为数据元素;在畜类这个集合中,猪、狗等为数据元素。(主要研究)
↓
数据项:一个数据元素可以由若干个数据项组成,数据项是数据的最小单位。(如人的手、脚、鼻子等)
二:数据结构分为逻辑结构和物理结构
1、逻辑结构:指数据对象中数据元素之间的相互关系。
逻辑结构可以分为以下四种:
(1)集合结构:结合结构中的数据元素除同属于一集合外,他们之间没有其他关系
(2)线性结构:数据元素是一对一的关系。
(3)树形结构:数据元素是一对多的关系。
(4)图形结构:数据元素是多对多的关系。
2、物理结构:指数据的逻辑结构在计算机中的储存形式。
存储形式可分为顺序存储和链式储存:
(1)顺序存储结构:是把数据元素放在地址连续的存储单元里。
(2)链式存储结构:是把数据元素放在任意的存储单元里。()
三:数据类型
是指一些性质相同的值的集合及定义在此集合上的一些操作的总称。
可分为两种类型:
原子类型:不可再分的基本类型。如字符型、整形
结构类型:由若干个类型集合而成。是可以再分解的。如整形数组是由若干个整形组成的。
四:抽象数据类型
一个数据对象、数据对象中各数据元素之间的关系及对数据元素的操作。
举例理解:如x,y,z三个整形数据始终一起出现,所有定义了一个vector3的抽象类型,它有x、y、z三个变量。
个人理解:抽象的数据类型的作用就是把一些类型相同并有一定关联的数据元素区分出来,昨为一种数据项或数据元素的集合来使用。
算法
一:算法
是指解决特定问题求解步骤的描述。善用算法的好处在哪里?如下↓
计算1+2+3····+100的结果:
(1)法一
(2)法二
由上可以知道,如果计算1到1亿所有整数的和,那么算法的好坏便能直观地显示出来。
二:算法是4个特征
(1)输入输出。0个或多个输入,1个或多个输出
(2)有穷性。在执行有限的步骤后能自动结束而不会出现无限循环。
(3)确定性。每一个步骤都会有确定的含义,而不会出现二义性。
(4)可行性。每一步都必须是可行的,即能通过有限的次数完成。
三:算法设计的要求
(1)正确性
(2)可读性
(3)健壮性。当输入数据不合理时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
(4)时间效率高和储存量底。
四:算法效率
1、函数的渐近增长
2、算法时间的复杂度(对时间的需求)
(1)推导大0阶方法
(2)常数阶
(3)线性阶
(4)对数阶
(5)平方阶
3、算法空间的复杂度(对储存空间的需求)
来源:https://www.cnblogs.com/mozhenrui2015/p/4754169.html