标签:问题 class 情况 复杂度 应该 相关 事前 结构 元素
数据结构:是指数据对象中数据元素之间的关系
集合结构
数据元素之间没有特别关系,仅同属于一个集合
线性结构
数据元素之间是一对一的关系
树形结构
数据元素之间存在一对多的层次关系
图形结构
数据元素间是多对多的关系
顺序存储
将数据存储在地址连续的存储单元里面
链式存储
将数据存储到任意的储存单元里面,通过地址保存的方式找到相关联的数据元素
算法:特定问题求解步骤的描述
正确性
算法对于合法数据能够得到满足要求的结果;能处理非法输入,得到合理的结果;对于边界数据和压力数据都能得到满足
可读性
算法要方便阅读、理解和交流
健壮性
算法不应该产生莫名其妙的结果
性价比
利用最少的资源得到满足要求的结果
程序 = 数据结构 + 算法
算法是为了解决实际问题而存在
数据结构是算法处理问题的载体
数据结构与算法相辅相成,共同解决问题
事后统计法
比较不同算法对同一组输入数据的运行处理时间
缺陷:不容易准确度量算法的效率
事前分析估算算法
通过操作数量度量算法的效率
算法效率主要通过时间复杂度进行判断
大O表示法用于描述算法的时间复杂度,它只关心操作数的最高次项
常见时间复杂度的比较
O(1) < O(log n) < O(n) < O(n*log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
当时间复杂度大于O(n^3)时,即使n的值很小工程上也不接受
一般在分析算法时,重点考虑在最坏情况下的时间复杂度
算法重点关心时间复杂度
算法的空间复杂度也适用于大O表示法
空间换时间策略是开发中常用的策略
标签:问题 class 情况 复杂度 应该 相关 事前 结构 元素
原文地址:http://www.cnblogs.com/maximum-wong/p/7856392.html