- 浏览: 3509672 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。
算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。
1、时间复杂度
1.1 时间频度
一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)
1.2 时间复杂度
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同,如 T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为O(n2)。
按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),..., k次方阶O(nk),指数阶O(2n)。
随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
2、空间复杂度
一个算法的空间复杂度(Space Complexity)S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。渐近空间复杂度也常常简称为空间复杂度。
一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表由调用函数传递而来的,它不随本算法的不同而改变。存储算法本身所占用的存储空间与算法书写的长短成正比,要压缩这方面的存储空间,就必须编写出较短的算法。算法在运行过程中临时占用的存储空间随算法的不同而异,有的算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变
一个算法的空间复杂度只考虑在运行过程中为局部变量分配的存储空间的大小,它包括为参数表中形参变量分配的存储空间和为在函数体中定义的局部变量分配的存储空间两个部分。若一个算法为递归算法,其空间复杂度为递归所使用的堆栈空间的大小,它等于一次调用所分配的临时存储空间的大小乘以被调用的次数(即为递归调用的次数加1,这个1表不开始进行的一次非递归调用)。算法的空间复杂度一般也以数量级的形式给出。如当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1);当一个算法的空间复杂度与以2为底的n的对数成正比时,可表示为0(10g2n);当一个算法的空I司复杂度与n成线性比例关系时,可表示为0(n).若形参为数组,则只需要为它分配一个存储由实参传送来的一个地址指针的空间,即一个机器字长空间;若形参为引用方式,则也只需要为其分配存储一个地址的空间,用它来存储对应实参变量的地址,以便由系统自动引用实参变量。
对于一个算法,其时间复杂度和空间复杂度往往是相互影响的。当追求一个较好的时间复杂度时,可能会使空间复杂度的性能变差,即可能导致占用较多的存储空间;反之,当=i自求一个较好的空间复杂度时,可能会使时间复杂度的性能变差,即可能导致占用较长的运行时间。另外,算法的所有性能之间都存在着或多或少的相互影响。因此,当设计一个算法(特别是大型算法)时,要综合考虑算法的各项性能,算法的使用频率,算法处理的数据量的大小,算法描述语言的特性,算法运行的机器系统环境等各方面因素,才能够设计出比较好的算法。
发表评论
-
java 回溯法求解 8皇后问题
2012-02-14 07:51 4454package endual; public cl ... -
算法设计与分析_回溯法分析
2012-02-12 09:53 2356回溯法 有通用的解题 ... -
经典而简单的贪心算法
2012-02-10 18:23 1981package endual; public cl ... -
贪心算法的一些感悟
2012-02-10 15:42 2373每一个贪心算法的背后 ... -
java排序算法的实现(转载)
2012-01-31 23:12 1453插入排序: package org.rut. ... -
计算时间和空间复杂度
2012-02-02 13:37 1729计算时间和空间复杂度 分类: C++学习 2 ... -
java 实现二叉树
2012-01-25 21:13 1433在计算机科学中,树是一种非常重要的数据结构,而且有非常广泛的应 ... -
java实现队列
2012-01-25 21:10 1540队列是一种重要的数据结构,在排队论和算法设计中有很重要的应用, ... -
java 栈(面试够了的)
2012-01-25 21:07 1547package endual;public class Sta ... -
java 栈的实现
2012-01-25 20:38 1383栈可以说是一种特殊的链表,它的主要特点是先进后出,是一种重要的 ... -
求解算法的时间复杂度的具体步骤
2012-01-25 19:14 1623求解算法的时间复杂度 ... -
常用的排序算法的时间复杂度和空间复杂度
2012-01-24 23:03 2451常用的排序算法的时间复杂度和空间复杂度 分类: 笔试面试题 ... -
时间复杂度和空间复杂度
2012-01-24 22:17 1958时间复杂度和空间复杂度 分类: Algorithm 2008 ... -
海量数据算法笔试题
2012-01-21 01:58 1563海量数据算法笔 ... -
[转]大数据量,海量数据 处理方法总结
2012-01-21 01:57 1192[转]大数据量,海量数据 处理方法总 ... -
时间复杂度的计算
2012-01-17 22:54 1331算法复杂度是在《数据 ... -
算法分类(按照效率降序排列)
2011-09-13 21:09 16371.常数级、 2.对数级 3.次线性级 4.线性级 5 ...
相关推荐
对时间复杂度和空间复杂度进行超级详细的讲解
对java的8种排序方法的空间复杂度和时间复杂度,进行了一个简单的统计
算法复杂度分为时间复杂度和空间复杂度。 其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,...
数据结构与算法笔记:时间复杂度和空间复杂度
时间复杂度和空间复杂度,大O表示法【数据结构和算法入门2】
时间复杂度和空间复杂度.url
算法复杂度——时间复杂度和空间复杂度.doc
信息学奥赛算法时间复杂度和空间复杂度计算 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。 时间效率被称为时间复杂度 空间效率被称作空间复杂度
算法的时间复杂度和空间复杂度-总结.doc
学习电脑信息常用的排序算法的时间复杂度和空间复杂度
Python实现二分查找和哈希查找的示例代码及其时间复杂度和空间复杂度的分析
算法设计目标与时间复杂度与空间复杂度.ppt
相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义)
关于算法时间复杂度的计算 关于算法时间复杂度的计算 关于算法时间复杂度的计算
这是一个关于编程的资源,旨在帮助学习者深入了解和掌握相关概念和技能。资源提供了多样化的内容,包括详细的教程、示例代码、实践项目和练习题。它适用于各种级别的学习者,无论是初学者、中级学习者还是高级学习者...
算法 时间复杂度 空间复杂度 经典算法 时间复杂度 空间复杂度 经典算法 时间复杂度 空间复杂度 经典
时间复杂度的理解前言定义(1)时间频度(2)时间复杂度(3)最坏时间复杂度和平均时间复杂度最坏时间复杂度和平均时间复杂度(1)最坏时间复杂度(2)平均时间复杂度尾:求时间复杂度综上: 前言 算法复杂度分为...