Algorithm 编程/编码时渐近时间复杂度的重要性?
我听说过很多关于时间复杂性的事情。时间复杂性本身就是一个近似值,因为我们关心的是最坏情况(大Oh)、最佳情况(大ω)和平均值(θ) 每种编程语言都包含许多内置函数。我真的不知道是否有办法检查这些函数的时间复杂度。 由于我们使用的是内置函数 在编码时,我们真的需要考虑<代码>时间复杂度吗? 那么空间的复杂性呢 有没有办法检查这些函数的时间复杂度。 因为我们使用的是内置函数 我们真的需要考虑编码时的时间复杂度吗? 如果您的应用程序需要能够扩展到更大的问题,那么可以。否则不行 那么空间的复杂性呢 同样的答案 有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数Algorithm 编程/编码时渐近时间复杂度的重要性?,algorithm,time-complexity,code-generation,Algorithm,Time Complexity,Code Generation,我听说过很多关于时间复杂性的事情。时间复杂性本身就是一个近似值,因为我们关心的是最坏情况(大Oh)、最佳情况(大ω)和平均值(θ) 每种编程语言都包含许多内置函数。我真的不知道是否有办法检查这些函数的时间复杂度。 由于我们使用的是内置函数 在编码时,我们真的需要考虑时间复杂度吗? 那么空间的复杂性呢 有没有办法检查这些函数的时间复杂度。 因为我们使用的是内置函数 我们真的需要考虑编码时的时间复杂度吗? 如果您的应用程序需要能够扩展到更大的问题,那么可以。否则不行 那么空间的复杂性呢 同样的答案
O(NlogN)
,或者在列表中查找元素平均是O(N)
。(如果你没有上算法课,有很多好的教科书……)O(NlogN)
,或者在列表中查找元素平均是O(N)
。(如果你没有上算法课,有很多好的教科书……)最常见的方法是使用计时器(前后时间戳、秒表等)循环运行(10000-10000000次,取决于功能、软件、计时器精度等),然后将其与其他选项进行比较 编辑:
您需要使用许多不同的输入大小,并注意缓存对度量的潜在混乱影响 有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数 是的。
最常见的方法是使用计时器(前后时间戳、秒表等)循环运行(10000-10000000次,取决于功能、软件、计时器精度等),然后将其与其他选项进行比较 编辑:
您需要使用许多不同的输入大小,并注意缓存对度量值可能产生的混乱影响。根据语言的不同,可以找到告诉您复杂性的参考文档(例如C++文档)。IMHO,假设它们符合任何好的算法书中公认的复杂性是合理的。如果没有,并且你可以访问源代码,那么你可以用很难的方法来计算它。@ChiefTwoPencils:通常你是对的,尽管我知道一个常见的例外:在另一个字符串中搜索给定的字符串可以在线性时间和恒定空间中完成,但是许多语言中的标准库仍然实现了朴素的二次时间算法。诚然,对于较短的字符串,这种简单得多的算法可能会快得多。根据语言的不同,可以找到告诉您复杂性的参考文档(例如C++文档)。IMHO,假设它们符合任何好的算法书中公认的复杂性是合理的。如果没有,并且你可以访问源代码,那么你可以用很难的方法来计算它。@ChiefTwoPencils:通常你是对的,尽管我知道一个常见的例外:在另一个字符串中搜索给定的字符串可以在线性时间和恒定空间中完成,但是许多语言中的标准库仍然实现了朴素的二次时间算法。诚然,这一简单得多的算法对于合理的短字符串可能会快得多。在分析代码复杂度时,函数的时间复杂度如何,代码中使用内置函数,那么您也应该考虑它们。明显地如果你不考虑它们,那么你的复杂性分析是不正确的。MyPoT是每个人都喜欢为特定任务使用内置函数,因为它是库克书和最好的算法可用。考虑到写一个更好的代码比内置的可能性更小,如果BIT在时间复杂度中起主要作用。那个么我们的代码的时间复杂度将变得微不足道。@SubinCPoonamgode并不是真的。如果您编写的代码在3个嵌套循环中执行一些计算,那么内置的array.sort