空间复杂度和时间度的概念
2017-06-06 02:35
316 查看
算法的概念大家都知道,就是定义一个计算过程,取一个或一组数据作为输入,经过系列的运算步骤,得到另外一个或一组输出,也就是用来将输入数据转化为输出数据;那么我们如何来衡量一个算法呢,或者是使用哪些指标来衡量呢,这样我们就引入另外两个概念,时间复杂度和空间复杂度;
1、时间复杂度:它是一个函数,定量地表述了算法占用的时间,时间复杂度使用大写O表示,时间复杂度需要分析一个算法在运行过程中的基本操作,计量所有操作的数量,假设一个基本的操作在一个固定的时间内完成,那么该算法的总运行时间和总操作量,无非就是常量系数的关系。有时对于大小相同的输入,效率也是不同的,因为系数不同;因此常对最坏时间复杂度进行分析,对于给定大小的任何输入,某个算法的最大运行时间记为T(n),通常根据T(n)对一个算法的时间复杂度进行分类,例如T(n)=O(n)我们称起具有线性时间,再例如:T(n)=O(n^3),称其具有指数时间;
渐进复杂度:时间复杂度是渐进的,它考察当输入值趋于无穷大时的情况,例如一个算法对于任意一个输入n,它最多需要8n^3+10*n的时间才能运行完毕,那么它的渐进复杂度为O(n^3);
具体定义:一般情况下,算法中基本操作的次数 是问题规模n的某个函数,用T(n)来表示,若有某个辅助函数f(n),使得n趋于无穷大时,T(n)/F(n)的极限值为不等于零的常数,则成F(n)是T(n)的同量级函数,记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度(O是数量级的符号 ),简称时间复杂度。
2、空间复杂度:计算一个算法占用的存储空间,一般是输入参数的函数,是衡量一个算法优劣的重要指标,空间复杂度越小,效率越高,占用存储空间越小;
接下来会介绍常用数据结构及算法实现;
相关文章推荐
- 时间复杂度和空间复杂度的概念
- 时间复杂度与空间复杂度的基本概念
- 数据结构(一):数据结构的基本概念和算法的时间和空间复杂度
- 算法稳定排序和非稳定排序、内排序和外排序、时间复杂度和空间复杂度
- 数据结构之 删除顺序表中所有元素为X 的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 欧式空间与酉空间——概念区分
- 《编程之美》中买书问题算法。空间复杂度O(n),时间复杂度O(n),求挑战
- O(1)空间复杂度删除一棵二叉树
- 二叉树的时间复杂度和空间复杂度
- 2. 时间复杂度与空间复杂度
- 算法的时间复杂度和空间复杂度
- 时间复杂度和空间复杂度
- 时间复杂度和空间复杂度1 - 数据结构和算法03
- 本地管理表空间(LMT)与自动段空间管理(ASSM)概念(未看)
- 反转链表:空间复杂度为O(1)的算法
- 时间复杂度和空间复杂度详解
- 排序算法的时间复杂度和空间复杂度
- 算法的时间复杂度和空间复杂度
- PHP命名空间概念解析
- 说说PHP中的命名空间相关概念