算法复杂度基本知识

作者: 五年老码农 | 来源:发表于2020-02-08 23:03 被阅读0次

1.基本概念.
时间复杂度: 当前算法所消耗的时间。
空间复杂度: 当前算法所消耗的空间。
评价一个算法的好坏主要看这个算法的时间复杂度和空间复度。
2.时间复杂度. 「 大O符号表示法 」,即 T(n) = O(f(n)) ,其中f(n)表示每行代码执行次数之和,而O表示正比例关系。
例子:

for(int i=1; i<=n; ++i)
{
   j = i;
   j++;
}

假设每行代码的执行时间都是一样的,用1颗粒时间来表示,
那么这行代码第一行耗时1个颗粒时间, 第三行执行时间为n倍的颗粒时间,第四行为n倍的颗粒时间。
总时间T(n)=(2n+1)倍的颗粒时间,当n无线大的时候,2倍和加1就没有意义了。
常用的时间复杂度量级有:
*
常数阶O(1)
*
对数阶O(logN)
*
线性阶O(n)
*
线性对数阶O(nlogN)
*
平方阶O(n²)
*
立方阶O(n³)
*
K次方阶O(n^k)
*
指数阶(2^n)

从上到下时间复杂度越来越大,效率越来越低。
3.空间复杂度
空间复杂度是一个算法在运行过程中临时占用空间大小的一个度量。用S(n)度量。

int[] m = new int[n]
for(int i=1; i<=n; ++i)
{
   j = i;
   j++;
}

第一行new n个空间出来,后来的循环并没从新分配内存空间。
一般时间复杂度是一个上限,空间复杂度不会超过时间复杂度。

相关文章

  • 算法复杂度基本知识

    1.基本概念.时间复杂度: 当前算法所消耗的时间。空间复杂度: 当前算法所消耗的空间。评价一个算法的好坏主要看这个...

  • 算法相关

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

  • 算法基础知识

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

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 算法

    重拾算法:算法效率分析(一)(空间复杂度和时间复杂度) 详解算法的各种复杂度的差别有多大(带图) 算法复杂度 选择...

  • 算法复杂度

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

  • 算法复杂度

    算法复杂度 算法复杂度的目的:分析代码执行的时间成本。我们从五个方面来介绍算法复杂度:时间复杂度、时间复杂度分类、...

  • 全网最好的数据结构学习文章合集系列之空间复杂度

    二、空间复杂度 算法概念 及 复杂度 简单的LRU Cache设计与实现 js算法初窥07(算法复杂度) 算法的时...

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

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

  • 时间和空间复杂度

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

网友评论

    本文标题:算法复杂度基本知识

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