Tag: 中位数

在C#中计算“中位数为5”的代码

注意:请不要将此解释为“作业问题”。 这只是我很想知道的事情:) 中值为5有时用作算法设计中的练习,并且已知仅使用6次比较可计算。 在C# 中实现“使用6次比较的五个中值”的最佳方法是什么? 我所有的尝试似乎都导致代码笨拙:(我需要漂亮可读的代码,同时仍然只使用6次比较。 public double medianOfFive(double a, double b, double c, double d, double e){ // // return median // return c; } 注意:我想我也应该提供“算法”: 我发现自己无法像Azereal在论坛post中那样清楚地解释算法。 所以我会在这里引用他的post。 来自http://www.ocf.berkeley.edu/~wwu/cgi-bin/yabb/YaBB.cgi?board=riddles_cs;action=display;num=1061827085 好吧,我在我的一个任务中提出了这个问题,我转向这个论坛寻求帮助,但没有帮助。 我终于找到了怎么做。 使用前4个元素启动mergesort并订购每对(2个比较) 比较每对中的两个较低的一个并从可能性中消除最低的一个(3个比较) 在没有配对的情况下添加第5个数字并比较两个(4个比较) 比较两个新对中的两个最低对并消除较低对(5个比较) 比较一个单独和最后一对中的较低者,较低的数字是中位数 可能的中位数在肠胃外 (54321) 5:4 3:2 2比较 (4 <5 2 <3 1) 4:2 3比较 2(4 <5 3 1) 1:3 4比较 […]