- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了顺序统计信息,以在线性时间 O(n) 内找到大小为 n 的数组中的第 k 个最小(或最大)元素。
有一个步骤需要找到中位数的中位数。
T(n) = T(n/5) + O(n)我们可以得到 T(n) = O(n)。
但是,如果我们有一个很大的数组,我们最终得到的数字是不是不是中位数的中位数,而是中位数的中位数的中位数的中位数的中位数的中位数。
请考虑一个包含 125 个元素的数组。
首先,将其分为 25 个部分,我们找到 25 个中位数。然后,我们将这 25 个数字分成 5 个部分,并找到 5 个中位数,最后,我们得到中位数的中位数。 (不是中位数的中位数)
我关心它的原因是,我可以理解最多有大约 [3/4]*n 个元素小于(或大于)中位数的中位数。但如果不是中位数的中位数,而是中位数的中位数的中位数呢?在最坏的情况下,小于(或大于)主元的元素一定较少,这意味着主元更接近数组的边界。
如果我们有一个非常大的数组,并且我们找到了它的中位数的中位数的中位数的中位数的中位数的中位数的中位数的中位数。在最坏的情况下,我们发现的主元仍然可以非常接近边界,这种情况下的时间复杂度是多少?
我构建了一个包含 125 个元素的数据集。结果是9吗?
0.8 0.9 1 inf inf
1.8 1.9 2 inf inf
6.8 6.9 7 inf inf
inf inf inf inf inf
inf inf inf inf inf
2.8 2.9 3 inf inf
3.8 3.9 4 inf inf
7.8 7.9 8 inf inf
inf inf inf inf inf
inf inf inf inf inf
4.8 4.9 5 inf inf
5.8 5.9 6 inf inf
8.8 8.9 9 inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
inf inf inf inf inf
其中 inf 表示数字足够大。
最佳答案
让我们将...的中位数的中位数表示为[中位数]* = M。
首先,我相信中位数算法(选择一个好的主元)不是递归的。算法如下:
中位数的中位数将小于 3n/10 个元素并大于另一个 3n/10 个元素,而不是 3n/4。选择中位数后,您有 n/5 个数字。中位数的中位数大于/小于这些数字的一半,即 n/10。这些数字中的每一个本身都是中位数,因此它大于/小于 2 个数字,从而得到另外 2n/10 个数字。现在,您总共得到 n/10 + 2n/10 = 3n/10 个数字。
为了解决您的第二个问题,在收集示例数据集中的 5 组并计算其中位数后,我们将得到以下序列:
1, 2, 7, inf, inf
3, 4, 8, inf, inf
5, 6, 9, inf, inf,
inf, inf, inf, inf, inf,
inf, inf, inf, inf, inf.
所以中位数的中位数确实是 9。
您建议的[中位数]*算法的运行时间将为:
T(n) = O(n * log(n))
现在让我们尝试分析有多少个数字小于/大于M。我们有以下小组:
每组小于/大于前一个深度的2个元素,即小于/大于前一个深度的2个元素,依此类推:
总计计算,我们得到M大于/小于 (n * (2^k) + k * n)/((2^k) * (5^k) )。对于深度 = 1,您将得到中位数的中位数,即 3n/10。
现在假设您的深度为 [log_5 (n)],即 n = 5^k,我们得到:
5^k * (k + 2^k)/(5^k * 2^k) 即 -> 1。
关于中位数的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582726/
基本上在 excel 中,我想要一个表格,就像下面右边给出的那个(我的数据规模比给出的例子大很多),它有每个主题的中位数,每个条件(例如 TADA、TADP、TPDA , TPDP)。理想情况下,我会
我有一个大小为5000 * 5000的矩阵,其90%的值为0。是否有现成的解决方案可用来计算排除“0”后该矩阵的均值,中位数? 一种粗制解决方案是将所有0更改为NA并使用 median(x, na.
这个问题已经有答案了: Mean per group in a data.frame [duplicate] (8 个回答) 已关闭 9 年前。 我有一个数据框,详细记录了客户花了多少钱,如下所示:
这是我的代码,用于打印所有职业的平均值和中位数。 occupation_lst = ['ALL OCCUPATIONS', 'MANAGEMENT', 'Chief executives', 'Gen
我的 csv 文件中有一个数据集,如下所示: teacher student student grade Jon marin
如何在 C 中不使用数组的情况下找到一组数字的平均值、中位数?问题不是找到平均值或中位数的方法,而是如果不允许使用数组,如何存储一组数字并对它们执行一些操作? 最佳答案 一个有趣的问题。 关键是找到一
我正在使用 SQL Server 2008 如果我有这样的表: Code Value ----------------------- 4 240 4 299 4 21
我正在尝试获取表中一组值的平均值、中位数、众数和范围。我能够得到平均值,但中位数、范围和众数我得到了错误的值。 下面是我为上述概念尝试过的代码。 Select CDS.[Commodity_S
我正在尝试获取表中一组值的平均值、中位数、众数和范围。我能够得到平均值,但中位数、范围和众数我得到了错误的值。 下面是我为上述概念尝试过的代码。 Select CDS.[Commodity_S
我需要从输入文件中查找平均值、中位数、众数和范围。 [input file has the numbers{60,75,53,49,92,71}] 我不知道如何打印范围内的计算结果或计算众数。 这很糟
这个问题已经有答案了: Division of integers in Java [duplicate] (7 个回答) 已关闭 7 年前。 public static double calcMed
当我输入 1,2,3 时我的中位数计算有问题我的中位数是 = 44 我不知道为什么 double wynik = 0; string x1 = textBox1.Text; string[] tab
我的中位数 3 实现在这里运行不正常。我必须为媒体随机选择 3 个数字,这是我的代码,请帮助我。 #include"stdafx.h" #include #include using namespa
我有一个文件,其中有如下几秒钟的数字: 0.01033 0.003797 0.02648 0.007583 0.007491 0.028038 0.012794 0.00524 0.019655 0.
是否有任何函数(作为数学库的一部分)可以计算 mean 、中位数、众数和范围来自一组数字。 最佳答案 是的,似乎确实有第三个库(Java Math 中没有)。出现的两个是: http://opsres
我目前正在尝试从具有两个条件的一系列数据中提取中位数。本质上相当于下面的 AVERAGEIFS(),我工作得很好。 AVERAGEIFS(): =AVERAGEIFS(Analysis!$F:$F,A
我有一个 pandas 数据框,看起来像这样: 给定行中的每个值要么是相同的数字,要么是 NaN。我想计算数据框中所有两列组合的平均值、中位数和获取计数,其中两列都不是 NaN。 例如,上述数据帧的结
我有以下数据: [4.1, 4.1, 4.1, 4.2, 4.3, 4.3, 4.4, 4.5, 4.6, 4.6, 4.8, 4.9, 5.1, 5.1, 5.2, 5.2, 5.3, 5.3, 5
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
一组整数作为输入。您必须返回该集合的子集,以便该子集的均值 - 中位数最大。 示例 1 输入 {1,2,3,4} 输出 {1,2,4} 例子2 输入 {1,2,2,3,3} 输出 {2,2,3} 最佳
我是一名优秀的程序员,十分优秀!