【问题标题】:Which approach is better : space versus time complexity哪种方法更好:空间与时间复杂度
【发布时间】:2015-04-08 18:03:42
【问题描述】:

我有一个算法(非常基本),为此我有两个解决方案,其中两个的复杂性是: 方法一:

Space complexity: O(n)
Time Complexity : O(n)

方法二:

Space complexity: O(1)
Time Complexity : O(nlogn)

选择哪种方法,我正在寻找这种情况下的最佳实践。

编辑 1:我的输入是无限大的。

【问题讨论】:

  • 取决于你的需要。
  • 取决于您的目标系统。如果是 127 字节 RAM 的 8051,您将知道您更喜欢哪个选项 ;)
  • 现在你在吹毛求疵 ;) 总是有“被忽略和遗忘”的 c 需要考虑。 “真正的”O 公式有它们。 c + O(c1*N)。这在极端情况下真的很重要......
  • @user2225104,O() 不衡量资源使用,它衡量对资源的需求如何扩展。您之前的评论是完全错误的,因为它声称 O(1) 解决方案 使用 比 O(N) 解决方案更少的内存。
  • 只有在一般情况下使用 O 表示法是错误的。通常,任何人都知道他们在谈论缩放。并且任何人都知道,这种缩放有时并不重要。就像对 4 个数字进行简单排序比使用快速排序更快。

标签: performance algorithm time-complexity space-complexity


【解决方案1】:

算法评估肯定取决于问题。

例如,如果您的 n < 2^30,您的 方法 1 可能会很好,在这种情况下,您的算法将使用剩余空间中的 2^30 位。

方法 2 将更具可扩展性,因为它不需要任何主要的额外内存。让某人等待更长的时间(nlognn^2 更好)比让应该工作的系统崩溃更好。

所以,这一切都取决于您的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2018-06-15
    • 2016-02-13
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多