Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 编程/编码时渐近时间复杂度的重要性?_Algorithm_Time Complexity_Code Generation - Fatal编程技术网

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

Algorithm 编程/编码时渐近时间复杂度的重要性?,algorithm,time-complexity,code-generation,Algorithm,Time Complexity,Code Generation,我听说过很多关于时间复杂性的事情。时间复杂性本身就是一个近似值,因为我们关心的是最坏情况(大Oh)、最佳情况(大ω)和平均值(θ) 每种编程语言都包含许多内置函数。我真的不知道是否有办法检查这些函数的时间复杂度。 由于我们使用的是内置函数 在编码时,我们真的需要考虑时间复杂度吗? 那么空间的复杂性呢 有没有办法检查这些函数的时间复杂度。 因为我们使用的是内置函数 我们真的需要考虑编码时的时间复杂度吗? 如果您的应用程序需要能够扩展到更大的问题,那么可以。否则不行 那么空间的复杂性呢 同样的答案

我听说过很多关于时间复杂性的事情。时间复杂性本身就是一个近似值,因为我们关心的是最坏情况(大Oh)、最佳情况(大ω)和平均值(θ)

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

在编码时,我们真的需要考虑<代码>时间复杂度吗? 那么空间的复杂性呢

有没有办法检查这些函数的时间复杂度。 因为我们使用的是内置函数

我们真的需要考虑编码时的时间复杂度吗? 如果您的应用程序需要能够扩展到更大的问题,那么可以。否则不行

那么空间的复杂性呢

同样的答案

有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数

  • 阅读文档。标准类方法的复杂性经常被记录下来

  • 运用你的算法知识。例如,在CS课程的算法单元中,您应该被告知,对于体面的排序算法,排序是
    O(NlogN)
    ,或者在列表中查找元素平均是
    O(N)
    。(如果你没有上算法课,有很多好的教科书……)

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

  • (注:我不推荐使用“经验”方法来估算复杂性。它可能会给你错误的答案……甚至忽略测量方法的标准问题。)

    我们真的需要考虑编码时的时间复杂度吗? 如果您的应用程序需要能够扩展到更大的问题,那么可以。否则不行

    那么空间的复杂性呢

    同样的答案

    有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数

  • 阅读文档。标准类方法的复杂性经常被记录下来

  • 运用你的算法知识。例如,在CS课程的算法单元中,您应该被告知,对于体面的排序算法,排序是
    O(NlogN)
    ,或者在列表中查找元素平均是
    O(N)
    。(如果你没有上算法课,有很多好的教科书……)

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

  • (注:我不推荐使用“经验”方法来估算复杂性。它可能会给你错误的答案……甚至忽略测量方法的标准问题。)

    有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数

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

    编辑:
    您需要使用许多不同的输入大小,并注意缓存对度量的潜在混乱影响

    有没有办法检查这些函数的时间复杂度。因为我们使用的是内置函数

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

    编辑:

    您需要使用许多不同的输入大小,并注意缓存对度量值可能产生的混乱影响。

    根据语言的不同,可以找到告诉您复杂性的参考文档(例如C++文档)。IMHO,假设它们符合任何好的算法书中公认的复杂性是合理的。如果没有,并且你可以访问源代码,那么你可以用很难的方法来计算它。@ChiefTwoPencils:通常你是对的,尽管我知道一个常见的例外:在另一个字符串中搜索给定的字符串可以在线性时间和恒定空间中完成,但是许多语言中的标准库仍然实现了朴素的二次时间算法。诚然,对于较短的字符串,这种简单得多的算法可能会快得多。根据语言的不同,可以找到告诉您复杂性的参考文档(例如C++文档)。IMHO,假设它们符合任何好的算法书中公认的复杂性是合理的。如果没有,并且你可以访问源代码,那么你可以用很难的方法来计算它。@ChiefTwoPencils:通常你是对的,尽管我知道一个常见的例外:在另一个字符串中搜索给定的字符串可以在线性时间和恒定空间中完成,但是许多语言中的标准库仍然实现了朴素的二次时间算法。诚然,这一简单得多的算法对于合理的短字符串可能会快得多。在分析代码复杂度时,函数的时间复杂度如何,代码中使用内置函数,那么您也应该考虑它们。明显地如果你不考虑它们,那么你的复杂性分析是不正确的。MyPoT是每个人都喜欢为特定任务使用内置函数,因为它是库克书和最好的算法可用。考虑到写一个更好的代码比内置的可能性更小,如果BIT在时间复杂度中起主要作用。那个么我们的代码的时间复杂度将变得微不足道。@SubinCPoonamgode并不是真的。如果您编写的代码在3个嵌套循环中执行一些计算,那么内置的array.sort