美文网首页
算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度

作者: Crystalajj | 来源:发表于2017-10-30 20:28 被阅读36次

时间复杂度

要理解时间复杂度,需要先理解时间频度。

一个算法中 语句执行的次数 称作语句频度(时间频度)。记作T(n)。

那么时间复杂度如下定义:

若某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n) 的极限值为不等于零的常数,那么称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),并且,称O(f(n))为算法的渐进时间复杂度,简称时间复杂度。

举例
example1

int x = 1;   //时间复杂度O(1)
for(int i = 0; i<n; i++){
  system.out.println(i);
}   //时间复杂度O(n)

example2

int n=100, count=0;
for(int i=0; i<=n; i*=2){  
  for(int j=1; j<=n; j++){
    count++;
  }
}  //复杂度O(nlog2n) -> 最外层log2n与内层n相乘

拓展:N与NP问题

Ο(2^n)<Ο(n!)为指数时间复杂度,称为NP(Non-Deterministic Polynomial, 非确定多项式)类问题

Ο(log2n),Ο(n),Ο(nlog2n),Ο(n^2)为P类问题,该算法为有效算法。

空间复杂度

运行完一个程序所需内存的大小。也可以简单理解为临时变量占用的存储空间。

举例
example

//该程序的空间复杂度为O(1)
int x=1, y=2;
int temp=x;
x=y;
y=temp;

相关文章

  • 数据结构-0-时间复杂度和空间复杂度

    1. 算法的复杂度: 算法的复杂度分为时间复杂度和空间复杂度。时间复杂度,是衡量算法执行时间的长度;空间复杂度,是...

  • 时间复杂度和空间复杂度笔记

    复杂度分析笔记 复杂度主要分为时间和空间复杂度 时间复杂度:算法(程序)执行的时间变化趋势 空间复杂度:算法(程序...

  • NLP初学之-算法复杂度

    算法的复杂度分为:时间复杂度和空间复杂度。

  • 算法复杂度

    算法的复杂度是以什么来度量的? 算法的复杂度是以时间复杂度和空间复杂度来计算的。 ①算法的时间复杂度 ...

  • 算法相关

    算法复杂度相关概念:漫画:什么是时间复杂度?算法的时间复杂度和空间复杂度详解算法题库:力扣 一、排序算法 排序算法...

  • 算法的时间复杂度和空间复杂度的计算

    1、时间复杂度和空间复杂度的意义 算法的时间复杂度和空间复杂度就是一种对算法优劣进行衡量的标准,前者反映了算法的执...

  • 算法基础知识

    算法的复杂度 算法的复杂度: 算法的时间复杂度和空间复杂度合称为算法的复杂度,一般不特别说明,讨论的时间复杂度均是...

  • 算法的复杂度

    算法复杂度分为时间复杂度和空间复杂度。时间复杂度是指执行算法所需要的计算工作量,而空间复杂度是指执行这个算法所需要...

  • 算法复杂度之时间复杂度和空间复杂度

    算法复杂度分为时间复杂度和空间复杂度 1、介绍 时间复杂度:执行这个算法所需要的计算工作量 空间复杂度:执行这个算...

  • 各种排序算法的时间与空间复杂度

    各种排序算法的时间复杂度和空间复杂度

网友评论

      本文标题:算法的时间复杂度和空间复杂度

      本文链接:https://www.haomeiwen.com/subject/lpympxtx.html