数据结构、算法分析

数据结构:是数据元素的组织形式,或数据元素相互之间存在的一种或多种特定关系的集合。
(1) 集合
结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系。例如,认定一个学生是否为班级的成员。
(2)线性结构
结构中的数据元素之间存在一个对一个的关系。例如,以学生入学报到的时间先后顺序排列的数据元素。
(3)树形结构
结构中的数据元素之间存在一个对多个的关系。例如,班级中的管理系统,班长管理多个班委,每个班委管理多个成员。
(4)图形结构或网状结构
结构中的数据元素之间存在多个对多个的关系。例如,同学之间的朋友关系。
 
算法评价
1、算法的定义
广义地说,算法就是为解决问题而采取的步骤和方法。
在程序设计中,算法是在有限步骤求解某一问题所使用的一组定义明确的指令序列,也就是计算机解题的过程。
 
算法的特征:
(1)有穷性
一个算法必须保证在执行有限步骤之后结束,而不是无限的。
(2)确定性
算法中每一条指令必须有明确的定义,而不能是模棱两可的。
(3)可行性
每个操作步骤都必须在有限的时间内完成。
(4)输入
一个算法可以一个或多个输入,也可以没有输入。
(5)输出
一个算法可以有一个或多个输出。没有输出的算法是没有实际意义的。
 
算法的评价
(1)正确性
(2)易读性
(3)高效性
(4)可维护性
 
算法分析:主要是指分析算法的效率。
算法效率的度量主要有两个方面:  算法的运行时间和算法所需的存储空间。
 
时间复杂度:
首先要说的是,时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。
当我们面前有多个算法时,我们可以通过计算时间复杂度,判断出哪一个算法在具体执行时花费时间最多和最少。
 
常见的时间复杂度有: 大O符号表示法 ,即 T(n) = O(f(n))
常数阶O(1),
对数阶O(log2 n),
线性阶O(n),
线性对数阶O(n log2 n),
平方阶O(n^2),
立方阶O(n^3)
k次方阶O(n^K),
指数阶O(2^n)。
随着n的不断增大,时间复杂度不断增大,算法花费时间越多。
 
空间复杂度:
是对一个算法在运行过程中临时占用存储空间大小的量度。
S(n) = O(f(n)) 
posted @ 2019-09-05 15:02  小兵07  阅读(269)  评论(0编辑  收藏  举报