给定是三个数值的数组,我想知道这三个数的中间值。 问题是, find三者中 最快的方法是什么? 我的方法是这种模式 – 有三个数字,有六个排列: if (array[randomIndexA] >= array[randomIndexB] && array[randomIndexB] >= array[randomIndexC]) 如果有人能帮我find一个更优雅 , 更快捷的方法,这将是非常好的。
如何计算使用Ruby的数字数组的中位数? 我是一个初学者,在我学习的过程中,我试图坚持已经教过的东西。 因此,我发现的其他问题超出了我的范围。 这是我的笔记和我的尝试: 按升序对数组进行sorting。 弄清楚它是奇数还是长度。 如果奇数,则将sorting后的数组长度+1分成两半。 这是中位数的指数。 返回这个值。 如果偶数,则findsorting数组的中间两个数字,并将它们分成1/2。 返回这个值。 find中间两个数字: 将sorting后的数组长度减半。 这是指数点。 第一个中间数字。 将sorting后的数组长度+ 2分成两半。 这是指数点。 第二个中间数字。 取这两个中间数的平均值。 def median(array) ascend = array.sort if ascend % 2 != 0 (ascend.length + 1) / 2.0 else ((ascend.length/2.0) + ((ascend.length + 2)/2.0) / 2.0) end end
给出了两个长度为n的有序数组,其问题是在O( n )时间中求出它们的和数组的中值,它包含数组A的每个元素和数组B的每个元素之间的所有可能的成对和。 例如:令A [2,4,6]和B [1,3,5]是两个给定的数组。 和数组为[2+1,2+3,2+5,4+1,4+3,4+5,6+1,6+3,6+5] 。 在O( n )中查找这个数组的中位数。 在O( n ^ 2 )中解决这个问题是非常简单的,但是有没有解决这个问题的O( n )? 注意:这是一个面试问题,问我的一个朋友,面试官很确定这个问题可以在O( n )时间内解决。
我想了解下面例子中的“中位数”algorithm: 我们有45个不同的数字,分成9组,每组5个元素。 48 43 38 33 28 23 18 13 8 49 44 39 34 29 24 19 14 9 50 45 40 35 30 25 20 15 10 51 46 41 36 31 26 21 16 53 52 47 42 37 32 27 22 17 54 第一步是sorting每个组(在这种情况下,他们已经sorting) 第二步recursion地找出中位数的“真实”中位数( 50 45 40 35 30 25 […]
我目前正在研究一种algorithm来实现C中滚动中值滤波器(类似于滚动平均滤波器)。从我的文献search中,似乎有两种合理有效的方法来实现它。 首先是对初始值窗口进行sorting,然后执行二进制search以插入新值,并在每次迭代中删除现有值。 第二个(来自Hardle和Steiger,1995,JRSS-C,algorithm296)构build了一个双头堆结构,一头是maxheap,另一头是minheap,中间是中间的。 这产生一个线性时间algorithm,而不是O(n log n)。 这是我的问题:执行前者是可行的,但是我需要在数百万个时间序列上运行这个,所以效率非常重要。 后者certificate很难实施。 我在R的stats包的代码的Trunmed.c文件中发现了代码,但这是相当难以理解的。 有没有人知道线性时间滚动中值algorithm的一个精心编写的C实现? 编辑:链接到Trunmed.c代码http://google.com/codesearch/p?hl=zh-CN&sa=N&cd=1&ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
你如何findPython中列表的中位数? 该列表可以是任何大小的,并且数字不能保证以任何特定顺序。 如果列表包含偶数个元素,则该函数应该返回中间两个的平均值。 以下是一些示例(按显示目的sorting): median([1]) == 1 median([1, 1]) == 1 median([1, 1, 2, 4]) == 1.5 median([0, 2, 5, 6, 8, 9, 9]) == 6 median([0, 0, 0, 0, 4, 4, 6, 8]) == 2
用MySQL计算中位数的最简单的方法是什么(希望不要太慢)? 我用AVG(x)找到了平均值,但是我很难找到一个简单的计算中位数的方法。 现在,我将所有行返回给PHP,进行排序,然后选择中间行,但是在一个MySQL查询中肯定有一些简单的方法。 示例数据: id | val ——– 1 4 2 7 3 2 4 2 5 9 6 8 7 3 对val排序得到2 2 3 4 7 8 9 ,所以中位数应该是4 ,而对于SELECT AVG(val) ,其中== 5 。
根据MSDN ,Median在Transact-Sql中不可用作为聚合函数。 但是,我想知道是否有可能创建此功能(使用创建聚合函数,用户定义函数或其他方法)。 什么是最好的方法(如果可能)做到这一点 – 允许在一个聚合查询中计算一个中值(假设一个数字数据类型)?