繁体   English   中英

编程/编码时渐近时间复杂度的重要性?

[英]Significance of Asymptotic Time complexity while Programming/Coding?

我已经听到了很多有关时间复杂度的信息。时间复杂度本身就是一种近似,因为我们关注的是Worstcase(Big-Oh),Bestcase(Big-Omega)和Average(Theta)。

每种编程语言都包含许多内置函数。我真的不知道是否有办法检查这些函数的时间复杂度。 由于我们使用的是功能内置的

我们Time complexity while coding真的需要考虑Time complexity while coding吗? 空间复杂度如何?

有什么方法可以检查这些功能的时间复杂度。 由于我们正在使用功能中的功能?

我们在编码时真的需要考虑时间复杂度吗?

如果您的应用程序需要能够扩展到更大的问题,那么可以。 否则没有。

空间复杂度如何?

相同的答案。

有什么方法可以检查这些功能的时间复杂度。 既然我们正在使用内置功能?

  1. 阅读文档。 通常会记录标准类方法的复杂性。

  2. 使用您的算法知识。 例如,您应该在CS课程的算法单元中学习到,对于体面的排序算法,排序为O(NlogN) ,或者在列表中查找元素的平均值为O(N) (如果您不使用算法学,则有很多不错的教科书...)

  3. 检查并在必要时分析内置函数的源代码。

(注意:我不建议使用“经验”的方法来估计复杂度。它可能会给您错误的答案……甚至忽略了度量方法的标准问题。)

有什么方法可以检查这些功能的时间复杂度。 既然我们正在使用内置功能?

是。
最常见的方法是使用计时器(前后的时间戳,秒表等)循环运行(10,000-10,000,000次,具体取决于功能,软件,计时器的精度等),然后将其与其他计时器进行比较选项。

编辑:
您需要使用许多不同的输入大小,并注意缓存对测量的潜在混淆效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM