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;
}
}
† 地球の末路!? †
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;
}
}
† 地球の末路!? †
【このカテゴリーの最新記事】
-
no image
-
no image
posted by 得ナビ8!おまんこっちんこうし at 00:00
| プログラミング(Java)