032-アルゴリズム-最大値を求めるプログラム【新人エンジニアが最初に覚えたい100のJava文法】

ユーチューブ動画

アルゴリズム-最大値を求めるプログラムについて解説します。

ソースコード

public class ArgoMax {
	public static void main(String[] args) {
		int[] data = { 30, 60, 70, 90, 20 };
		System.out.println(max(data));
	}
	public static int max(int[] data) {
		int max = data[0];
		for(int i = 1; i < data.length; i++){
			if(max < data[i]){
				max = data[i];
			}
		}
		return max;
	}
}

解説

最大値を求めるプログラムについて解説します。

プログラムを組み立てるときには、プログラムの解法が必要です。

プログラムの解法をアルゴリズムといいます。

代表的なアルゴリズムを覚えておくと、将来いろいろなプログラムを組むときのヒントになります。

ここでは、最大値を求めるプログラムを紹介します。

イメージは総当たりで対戦して最後まで勝ち残ったデータが本当の最大値という勝ち残り戦です。

サンプルコードで確認しましょう。mainメソッドを持つクラスに、配列が宣言されています。

この中から最大値を求めるにはどうしたらよいでしょうか。

そんなのは簡単。90が答えです。人間は目でみて判断できるかもしれませんが、

コンピュータはそうはいきません。

最大値を求めるやり方を教えないと分かりません。

サンプルコードでは、最大値を求めるmaxというメソッドを定義しています。

引数に対象となる配列を代入します。

代入された配列の要素を1つ1つ比較しながら、最大値を求めます。

まず、最初の要素を仮の最大値として待避します。 

Int max = data[0]という部分です。

次のfor文で配列の要素を一つ一つチェックします。

繰り返し用の変数iが1から始まっています。

これは2番目以降の数字と比較するためです。

2番目以降の数字を仮の最大値と順に比較し、もし仮の最大値よりも対象の数字が大きければ、仮の最大値を上書きして、更新します。

すると、30と60を比較して、60で仮の最大値を上書き

60と70を比較して、70で仮の最大値を上書き、

70と90を比較して、90で仮の最大値を上書き、

90と20を比較して、上書きしない。

残った90が本当の最大値ということになります。

頭の中だけで考えずに、ぜひ紙書き出したり、変数の値の変化を追うようにしてください。

以上、最大値を求めるプログラムについて解説しました。

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。