算法时间复杂度和空间复杂度

算法的定义:算法是规则的有限集合,是为解决特定问题而规定的一系列操作
算法的特性:
有限性:有个步骤之内正常结束,不能形成无穷循环
确定性:算法中的每个步骤必须有确定含义,无二义性得以实现
可行性:原则上能精确进行,操作可通过已实现基本运算执行有限次而完成
输入:有多个或者0个输入
输出:至少有一个或者多个输出
算法的特征:
正确性:
程序没有语法错误
程序对于几组输入数据能够得出满足规格说明要求的结果
程序对于精心选择的典型、苛刻的而且有刁难性的几组数据能够得出满足规格说明要求的结果
程序对于一切合法的输入数据都能产生满足规格说明要求的结果
可读性:
健壮性:
高效率和低存储量:
算法:描述数据元素的元素之间的关系(包含数据逻辑关系、存储关系描述)
描述算法的工具:算法可用自然语言、框图、高级程冠希设计语言进行描述
程序是算法在计算机中的实现


算法评价的标准
评价一个算法主要看这个算法所占用机器资源的多少,而这些资源中时间代价与空间代价是两个主要的方面,通常是以算法执行所需要的机器时间和所占用的存储空间来判断一个算法的优劣

对某个问题与该算法在运行时所占用的空间S与所耗费的时间T给出一个数量关系的评价
对矩阵-----阶数
对多项式---多项式项数
对图-------顶点的个数
对集合-----集合中元素的个数


衡量算法效率的方法;
事后统计法:
缺点:必须执行程序。其他因素掩盖
事前分析:
与算法执行相关的因素
算法选用的策略
问题的规模
编写程序的语言
编译程序产生的机器代码的质量
计算机执行指令的速度
一个算法耗费的时间=算法中每条语句执行的时间

时间复杂度
一个算法的执行时间大致上等于其所有语句执行时间的总和,对于语句执行时间是指该条语句的执行次数和执行一次所需要时间的乘积
语句频度:语句在算法中重复执行的次数
算法时间复杂度即算法时间度量记为
T(n)=O(f(n))
常用的数据结构中时间复杂度频率计算
O(1)  常数型
O(n) 线性型
O(n 2) 平方型
O(n 3) 立方型
O(2 n) 指数型
O(log2 n)对数型
O(nlog2 n)二维型


空间复杂度
S(n)=O(f(n)
算法空间复杂度又输入数据、程序本身、辅助变量来确定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值