2019.09.05
中央値
中央値とは
以下は、中央値を求める例です。
Javaソースコード
Median.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043
import java.util.Arrays; public class Median { public static void main( String[] args ) { // 配列aを宣言 int[] a; // 中央値を代入する変数を宣言 double median; // 要素数8を設定 a = new int[ 8 ]; // 値を代入 a[ 0 ] = 4; a[ 1 ] = 9; a[ 2 ] = 2; a[ 3 ] = 1; a[ 4 ] = 5; a[ 5 ] = 3; a[ 6 ] = 7; a[ 7 ] = 8; // 昇順ソート Arrays.sort( a ); // 配列の中間 int m = a.length / 2; // 中央値 if ( 0 != ( a.length % 2 ) ) { // 配列の個数が奇数 median = (double)a[ m ]; } else { // 配列の個数が偶数 median = (double)( a[ m - 1 ] + a[ m ] ) / 2.0; } // 結果表示 System.out.println( "中央値 : " + median ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Median.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Median.java
実行
C:\talavax\javasample>java Median
実行結果
中央値 4.5
Javaソースコードの解説
001
import java.util.Arrays;
Javaのクラスライブラリの中から「java.util.Arrays」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Arraysクラスが利用できるようになります。
003
public class Median {
クラス名を、Medianとしています。
004
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
005 006 007 008 009
// 配列aを宣言 int[] a; // 中央値を代入する変数を宣言 double median;
このプログラムで使う変数を宣言しています。
011 012 013 014 015 016 017 018 019 020 021 022
// 要素数8を設定 a = new int[ 8 ]; // 値を代入 a[ 0 ] = 4; a[ 1 ] = 9; a[ 2 ] = 2; a[ 3 ] = 1; a[ 4 ] = 5; a[ 5 ] = 3; a[ 6 ] = 7; a[ 7 ] = 8;
024 025
// 昇順ソート
Arrays.sort( a );
ソート Arrays.sortメソッド
public static int Arrays.sort( byte[] a )public static int Arrays.sort( char[] a )
public static int Arrays.sort( double[] a )
public static int Arrays.sort( float[] a )
public static int Arrays.sort( int[] a )
public static int Arrays.sort( short[] a )
・指定された配列を数値の昇順でソートします。 パラメータ a : 昇順ソートする配列
027 028
// 配列の中間 int m = a.length / 2;
030 031 032 033 034 035 036 037 038
// 中央値 if ( 0 != ( a.length % 2 ) ) { // 配列の個数が奇数 median = (double)a[ m ]; } else { // 配列の個数が偶数 median = (double)( a[ m - 1 ] + a[ m ] ) / 2.0; }
040 041
// 結果表示 System.out.println( "中央値 : " + median );
結果を表示しています。
以上です。