python算法_Python - 算法分析

算法分析

算法的效率可以在执行之前和执行之后的两个不同阶段进行分析。他们是以下 -

先验分析 - 这是一种算法的理论分析。 算法的效率是通过假设所有其他因素(例如处理器速度)是恒定的并且对实现没有影响来衡量的。

后验分析 - 这是对算法的经验分析。 所选择的算法使用编程语言来实现。然后在目标计算机上执行。在此分析中,收集实际的统计数据,如运行时间和所需空间。

算法的复杂性

假设 X 是算法, n 是输入数据的大小,算法X使用的时间和空间是决定X的效率的两个主要因素。

时间因素 - 时间通过计算关键操作的数量来衡量,如排序算法中的比较。

空间因子 - 空间通过计算算法所需的最大存储空间来测量。

所述算法的复杂性 F(N) 给出的运行时间和/或在以下方面由该算法所需的存储空间 Ñ 作为输入数据的大小。

空间复杂性

算法的空间复杂度表示算法在其生命周期中所需的内存空间量。算法所需的空间等于以下两个组件的总和 -

固定部分,是存储某些数据和变量所需的空间,与问题的大小无关。例如,使用的简单变量和常量,程序大小等

变量部分是变量所需的空间,其大小取决于问题的大小。例如,动态内存分配,递归堆栈空间等。

任何算法P的空间复杂度S(P)是S(P)= C +

SP(I),其中C是固定部分,S(I)是算法的可变部分,取决于实例特征I.是一个简单的例子,试图解释这个概念 -

Algorithm: SUM(A, B)

Step 1 - START

Step 2 - C ← A + B + 10

Step 3 - Stop

这里我们有三个变量A,B和C以及一个常量。因此S(P)= 1 + 3.现在,空间取决于给定变量和常量类型的数据类型,并且它将相应地相乘。

时间复杂性

算法的时间复杂度表示算法运行完成所需的时间量。时间要求可以定义为一个数值函数T(n),其中T(n)可以测量为步数,只要每步消耗的时间恒定。

例如,添加两个n位整数需要 n个 步骤。因此,总计算时间是T(n)= c *

n,其中c是加两位所用的时间。在这里,我们观察到T(n)随着输入尺寸的增加而线性增长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值