在不使用数组的情况下,哪种最有效的方法可以找到三个整数的中位数,如下例所示:
int[] median = {int a, int b,int c};
Array.Sort(median);
int medianValue = median[1];
最佳答案
我知道最快的方法是使用
max(min(a, b), min(max(a, b), c))
我相信 C# 对接受两个参数的 min
和 max
进行了优化。由于分支,这将比采用 if
语句更快。
还有其他技巧:您可以使用 XOR 和 < 实现最小值和最大值,但我怀疑这对现代架构有任何好处。
关于c# - 找到三个整数的中位数的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392321/