簡體   English   中英

從Java中的2D數組獲取中位數

[英]Get the median from a 2D Array in Java

我是編程的新手,兩個月前開始學習Java。 我被分配去做一個小程序,並且我必須從2D數組中獲取該程序的一部分。 2D數組包含3個科目和(N)個學生。 我必須獲取每個主題的中位數,但我無法真正理解如何對每個主題的數字進行排序。

我應該從那里開始的任何幫助,技巧或建議,我們都表示感謝。

考慮到arr是包含雙精度值的2D數組。 使用以下代碼

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);
        }
    }
}

您可以根據需要更改數據類型...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM