从Java中的二维数组中获取中位数

我是编程的新手,我已经在2个月前开始学习Java。 我已经被分配去做一个小程序,并且这个程序的一部分我必须从二维数组中获得中位数。二维数组由3个科目和(N)个学生组成。我必须得到每个科目的中位数,但我无法真正理解我将如何对每个科目的数字进行排序。从Java中的二维数组中获取中位数

任何帮助,提示或建议从我应该开始真的很感激。

回答:

考虑到arr是包含double值的二维数组。使用下面的代码

Arrays.sort(arr, Comparator<double[]>() { 

public int compare(double a, double b) {

return Double.compare(a[0], b[0]);

}

});

这里阵列和比较都可用下的java.util包。 如果你使用的是java 8,这可以在一行中完成。

Arrays.sort(arr, (a,b) -> Double.compare(a[0], b[0])); 

回答:

你可以用户java.util.arrays.sort()方法。

import java.util.*; 

public class MyClass {

public static void main(String args[]) {

int N=10; // number of students

double[][] array = new double[3][N];

for (int i=0;i<3;i++)

for (int j=0;j<N;j++)

array[i][j]= // students scores

for (int i=0;i<3;i++) {

double[] temp = new double[N];

for (int j=0;j<N;j++)

temp[j]=array[i][j]; // create an array for each subject

Arrays.sort(temp); // sort each array

double median;

if (temp.length % 2 == 0) // find median for each case

median = ((double)temp[temp.length/2] + (double)temp[temp.length/2 - 1])/2;

else

median = (double) temp[temp.length/2];

System.out.println("Median of Subject " +(i+1)+" = " + median);

}

}

}

你可以改变数据类型,只要你想......

以上是 从Java中的二维数组中获取中位数 的全部内容, 来源链接: utcz.com/qa/260267.html

回到顶部