如何为java查找数字数组的中位数?

如何为java查找数字数组的中位数?,java,arrays,median,Java,Arrays,Median,这是我的中位数代码,但当我运行程序时,它一直返回为零。数字数组是:{3.0,15.0,7.0,27.0} 你总是乘零(输入=0)。因此它将始终返回零。请尝试以下操作: public double median(){ double input =0; double answer =sum() * (input) / data.length; return answer; } 公共双平均(双[]数组){ 双和=0.0; 对于(int index=0;index,在您提供的代码中,似

这是我的中位数代码,但当我运行程序时,它一直返回为零。数字数组是:{3.0,15.0,7.0,27.0}

你总是乘零(输入=0)。因此它将始终返回零。

请尝试以下操作:

public double median(){
double input =0;
double answer =sum() * (input) / data.length;
    return answer;
    }
公共双平均(双[]数组){
双和=0.0;

对于(int index=0;index,在您提供的代码中,似乎您试图查找平均值,而不是中值。我在下面提供了一些代码,这些代码有助于查找平均值。要查找中值,您需要对数组进行排序,这有点复杂

简单的答案是删除input=0行。假设数据是一个公共变量,sum是一个函数,可以对该公共变量求和,那么代码应该可以工作

实现应该取决于上下文,但我建议使用一个静态函数,该函数将double数组作为单个参数

public Double average(Double[] array){
    Double sum = 0.0;
    for(int index=0;index<array.length;index++){
        sum+=array[index];
    }
    return sum/array.length;
}
公共类中位数{
公共静态void main(字符串[]args){
双倍数字[]={1.0,2.0,3.0};
系统输出打印LN(中位数(数字));
}
公共静态双中位数(双[]x){
双和=0;

对于(inti=0;iIt,看起来你是在试图计算平均值,而不是中位数。你的输入总是0。
public class Median{
   public static void main(String[] args){
      double numbers[] ={1.0, 2.0, 3.0};
      System.out.println(median(numbers));
   }
   public static double median(double[]x){
      double sum = 0;
      for(int i=0;i<x.length;i++){
         sum += x[i];
      }
      return sum/x.length;
   }
}