【问题标题】:What is the Big O notation for Standard Deviation and Interquartile Range (IQR)?标准偏差和四分位距 (IQR) 的大 O 表示法是什么?
【发布时间】:2022-07-14 15:46:00
【问题描述】:

我想知道计算标准偏差和四分位距 (IQR) 的时间复杂度。 请纠正我如果我错了,标准差需要 O(n), 而 IQR 需要 O(n log n)。 感谢您提供的任何帮助。

  • 取决于一点。时间复杂度是指哪些操作?您是否假设恒定时间加法和乘法?
  • 我知道 Stdv 需要遍历数据集两次来计算平均值和方差。即使 IQR 是基于找到中位数,数据集也必须提前排序。在我看来,排序部分使 IQR 比 Stdv 更复杂。
  • 是的,是的,您的想法是正确的,但实际上可以做得更快。请参阅下面的答案:)

标签: big-o


【解决方案1】:

如您所说,要计算标准偏差,您需要遍历数据集两次(一次用于平均值,一次用于元素偏差)。这给你一个时间复杂度O(2n) = O(n)算术运算。

对于 IQR,您需要找到四分位数 Q1 和 Q3。正如您所说,您可以通过对数据进行排序来实现这一点(O(n log n)) 然后直接访问它们。但是你可以通过使用Quickselect 算法来更快地做到这一点,并得到四分位数O(2n) = O(n)平均时间。

请注意,我在这里谈论的是算术运算的时间复杂度。如果您的值是无限的,那么实际的时间复杂度可能会更高,并且您还必须考虑乘法和加法的复杂性。

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2019-04-19
    • 2011-04-13
    • 2017-12-07
    • 1970-01-01
    • 2012-12-03
    相关资源
    最近更新 更多