中央値を求める問題
今日は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となるんですね。