アフィリエイト広告を利用しています
最新記事
カテゴリアーカイブ

2019年10月17日

Java 最大値を求めるアルゴリズム

配列の中から最大値を求めるアルゴリズムです。
maxメソッドは要素の大小比較するメソッドになります。
このメソッドをmainメソッド側で配列を渡して呼び出しています。

public class Demo {
 public static void main(String[] args) {

  int[] num = {60, 70, 30, 10, 50, 40, 20};
  System.out.println(max(num));
 }

 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;
 }
}

data[0]に格納されている要素を仮の最大値として変数maxに代入します。
forが1から始まるのは、インデックス0を仮の最大値としているから。
比較しても意味がないということです。

インデックス0の仮の最大値よりインデックス1以降の要素が大きければ
変数maxの値を上書きしてif文とfor文から出てmaxをreturnします。

maxメソッドの引数の変数dataは
渡された配列を受け取るための変数なので変数名は何でもOKです。

それから、もう一つ。

maxメソッドをstaticにしているかというとオブジェクトを生成しなくてもいいから。
staticでない時「max(num)」ではメソッドにアクセスすることはできないので
オブジェクトを生成してアクセスする必要があります。こんな感じで。

public class Demo {
 public static void main(String[] args) {

  int[] num = {60, 70, 30, 10, 50, 40, 20};
  Demo demo = new Demo();
System.out.println(demo.max(num));
 }

 public 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;
 }
}

地球の末路!?




検索