当前位置: 首页 > 网络应用技术

一篇文章告诉您算法时间复杂性是什么!

时间:2023-03-07 15:41:15 网络应用技术

  在算法分析中,语句t(n)的执行总数是有关问题n的函数,然后分析n的变化t的变化,并确定顺序t(n)。

  算法的时间复杂性(即算法的时间量)记录为:t(n)= o(f(f(n)))。这意味着随着尺寸n的增加,增长,增长算法执行时间的速率与f(n)的增长率相同。f(n)是量表n.in中的函数,使用资本o()反映算法的时间复杂性,我们称其为伟大的O。

  在正常情况下,随着n的增加,t(n)的最慢算法是最佳算法。

  显然,可以看出,算法的时间复杂性的定义是,我们为普通时间复杂性的非官方名称。

  我们可以通过以下方法得出算法的时间复杂性,该方法被称为得出整体O级:

  1)使用常数1在运行时间内替换所有其他常数。2)在修改的运行函数中,仅保留最高级别。3)如果存在最高级别的项目而不是1,则使用此删除常数乘法物品。

  以上结果是大的O级别。

  假设有上述算法,尚未了解算法的学生可能会认为算法的时间复杂性为o(3),但实际上是O(1)。上面,第一步是替换3,它变为1,第二步。该算法根本没有最高水平,因此该算法的时间复杂性为O(1)。

  假设采用以下算法,有十个句子sum =(1 + n)n / 2;/执行一次 * /

  在上面的算法中,代码执行12行。实际情况与原始3行没有什么不同。因为问题的本质无关紧要,所以算法的时间复杂性仍然是O(1)。

  大约我们称为O(1)的两种类型的时间,也称为恒定顺序。

  如上面的代码所示,周期内的复杂性为O(1),焦点是N的大小。它决定了周期的数量,并且整个算法的时间复杂性为O(n)。

  如上所述,计数的增长率一次乘以2。假设计数= 10,n = 100,则有以下相等的形式:

  最后,三个处方10 2 = 80。该周期的时间复杂性为O(logn)。

  在上述嵌套周期中,内存周期是线性顺序,时间的复杂性为o(n),外部循环的时间复杂性也为o(n),这等同于记忆的记忆记忆。第二,此代码的时间复杂性为o(n2)。

  如果有以下算法:

  上面的时间复杂性为O(MN)。

  让我们看看复杂情况如何得出时间的复杂性:

  当i = 0时,内部执行将执行n次;当i = 1,内部执行n-1,依此类推:

  要转换上述公式,第一个增加项目为n+1,总计n n+1,然后等到以下公式:

  以下是基于大o:1)没有添加方法的方法,因此未替换2)保留最高项目,即n2/2 3)删除常数,即删除1/2,等到最终结果为n2。

  例如,可以得出一些结论。实际上,派生过程并不困难,如上所述,很难改变数字。

  除了先前的介绍外,还有其他一些时间复杂性。

  立方体步骤:o(n数)索引步骤:2英寸n纳入一对:nlogn步骤:n!N.

  所有这些时间复杂性的时间消耗如下:o(1)<o(logn)<o(n)<o(nlogn)<o(n2)<o(n3)<o(n3)<o(2?)<o(n!)<o(n o)

  改变时间的方式。

  算法空间复杂度的计算公式记录为:s(n)= o(f(f(n)))。其中,n是问题的大小,f(n)是n所占据的存储空间的函数。

  我们都使用“时间复杂性”来指代运行时间的需求,“空间复杂性”是指空间需求。当使用“复杂性”而没有有限的单词时,通常是指时间复杂性。

  本文重点关注时间复杂性,并且不再有关于空间复杂性的介绍。