ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

中央値を求める問題

今日はyukicoderの★の問題の中で中央値を求める問題を解きました。
No.275 中央値を求めよ - yukicoder

中央値を求めるを求めるために、配列を整列させなければならないので、アルゴリズムバブルソートを用いました。
バブルソートは隣り合う数字の比較を繰り返すことで、整列を行います。具体的に示すと、以下の通りです。本に書いてあったものを載せています。

for(int i =0; i < array.length; i++) {
			for(int j = array.length - 1; j > i; j--) {
				if(array[j-1] > array[j]) {
					n = array[j];
					array[j] = array[j-1];
					array[j-1] = n;
				}
			}
		}

中央値は、配列の長さが奇数であれば、真ん中の配列の要素が中央値となり、偶数であれば、配列の長さをNとすると、(array[N/2-1]+array[N/2])/2となります。配列の添え字が0から始まるので、N/2-1となるんですね。