我听过很多关于时间复杂性的事情。时间复杂度本身就是一个Aproximation,因为我们关注的是Worstcase(Big-Oh),Bestcase(Big-Omega)和Average(Theta)。
每种编程语言都包含许多内置函数。我真的不知道是否有办法检查这些函数的时间复杂度。 因为我们正在使用buit-in-functions,
我们真的需要考虑
Time complexity while coding
吗? 太空复杂性怎么样?有没有办法检查这些功能的时间复杂性。 既然我们正在使用buit-in-functions?
答案 0 :(得分:4)
我们是否真的需要在编码时考虑时间复杂度?
如果您的应用需要能够扩展到更大的问题,那么是的。否则没有。
空间复杂度怎么样?
答案相同。
有没有办法检查这些功能的时间复杂性。既然我们使用内置函数?
阅读文档。标准类的方法的复杂性经常被记录下来。
使用您的算法知识。例如,您应该在CS课程的算法单元中教授排序为O(NlogN)
的体面排序算法,或者列表中的元素平均为O(N)
。 (如果你没有采用算法,那就有很多优秀的教科书......)
检查并在必要时分析内置函数的源代码。
(注意:我不推荐估算复杂性的经验和方法。它可能会给你错误的答案......甚至忽略测量方法的标准问题。)
答案 1 :(得分:1)
有没有办法检查这些功能的时间复杂性。既然我们使用内置函数?
是。
最常见的方法是使用定时器(前后时间戳,秒表等)循环运行(10,000 - 10,000,000次,具体取决于功能,软件,定时器的精度等),然后将其与其他进行比较选项。
修改强>
您需要使用许多不同的输入大小,并注意缓存对测量的潜在混淆效果。