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タッチタイプゲームとして遊ぶことができます。