您的位置:首页 > 理论基础 > 数据结构算法

数据结构--算法(时间复杂度和空间复杂度)

2014-04-13 12:16 555 查看
今天学习了数据结构中的算法,了解了算法中有2个概念【时间复杂度】、【空间复杂度】

顾名思义,意思和他们的名称差不多,时间复杂度,就是说算法在运行过程中所耗用的时间,而空间复杂度,则是算法运行过程中所占用的空间(内存、硬盘等等)。

时间复杂度的计算中,要求有一定的数学功底,比如给我们一串数字,我们能转换成相应的数学公式

在算法中我们怎么去衡量【时间复杂度】、【空间复杂度】的复杂级别呢,这里有一个专业名词叫大O阶。

推导大O阶方法:

1、用常量1取代算法中的所有加减法操作。

2、在修改后的运行次数函数中,只保留最高阶项。

3、如果最高阶项存在的不是1,则去除与这个项相乘的参数。

下面我截取的一个例子



根据推导大O阶方法:

1、上面运行的次数3,用常量1表示。

2、没有最高阶

下面这个例子同上一个结果也是一样的



根据推导大O阶方法:

1、上面运行的次数12,用常量1表示。

2、没有最高阶

例子:



在这段程序中,会运行n/2次。

根据推导大O阶方法:

1、上面运行的次数n/2,不是常量。

2、最高阶,X=log2n。

再如下面平方阶的例子



一共循环n x n次

根据推导大O阶方法:

1、上面运行的次数n x n,不是常量。

2、最高阶,X=n2。

再看例子



根据推导大O阶方法:

这里要看我最后一个红框内容,他用到了推导方法中的第三点,如果最高阶项存在的不是1,则去除与这个项相乘的参数。

所以最终大O阶为:O(n2)

常见时间复杂度:



专业术语含义:

算法:

算法是解决特定问题求解步骤的描述,在计算机中为指令有序序列,并且每条制定表示一个或多个操作。

算法特性:

有穷性、确定性、可行性、输入、输出

算法设计的要求:

正确性、可读性、健壮性、高效率和低存储量。

参考书籍《大话数据结构》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: