首页 > 其他 > 详细

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

时间:2014-04-13 22:07:17      阅读:661      评论:0      收藏:0      [点我收藏+]

今天学习了数据结构中的算法,了解了算法中有2个概念【时间复杂度】、【空间复杂度】

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

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


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

推导大O阶方法:

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

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

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


下面我截取的一个例子

bubuko.com,布布扣

根据推导大O阶方法:

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

2、没有最高阶


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

bubuko.com,布布扣

根据推导大O阶方法:

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

2、没有最高阶


例子:

bubuko.com,布布扣

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

根据推导大O阶方法:

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

2、最高阶,X=log2n。


再如下面平方阶的例子

bubuko.com,布布扣


一共循环n x n次

根据推导大O阶方法:

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

2、最高阶,X=n2。


再看例子

bubuko.com,布布扣

根据推导大O阶方法:

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

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


常见时间复杂度:

bubuko.com,布布扣

专业术语含义:

算法:

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


算法特性:

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


算法设计的要求:

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


参考书籍《大话数据结构》

数据结构--算法(时间复杂度和空间复杂度),布布扣,bubuko.com

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

原文:http://blog.csdn.net/gaopeng0071/article/details/23594533

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!