0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】配列中の最大値検索をJavaで実装してみる【アルゴリズム】

Last updated at Posted at 2024-10-27

はじめに

基礎的なアルゴリズムをJavaで実装していきます。
今回は 「配列中の最大値検索」 です。

配列中の最大値検索

目的:
カンマ区切りの複数の数値を受け取り、その中で最も大きい数値を検索します。

手段:
「配列に格納した値を先頭から1つずつ取り出して比較し、前より値が大きければ戻り値を更新する。
 配列の最後の値を比較し終わった時点で戻り値に入っている値が、その配列の最大値になる。」というアルゴリズムです。

設計

カンマ区切りの値を1つ1つ配列に格納するために split() を使っています。
また、1行単位で標準入力を読み込んだ場合String型になるので、それをint型に変換する処理を挟んでいます。(数値の大小比較をしたいため)

ソース

フォルダ構成

image.png

ソースコード

main.java
package main;

import process.MaxSearch;

public class Main {

	public static void main(String[] args) {
//		配列中の最大値検索クラスをインスタンス化して処理をスタート
		MaxSearch maxSearch = new MaxSearch();
		maxSearch.MaxSearchStarter();
	}
}

MaxSearch.java
package process;

import java.util.Scanner;

// 配列中の最大値検索
public class MaxSearch {
	public void MaxSearchStarter() {

		Scanner sc = new Scanner(System.in);

		System.out.println("カンマ区切りの数値を入力してください。");
		String input = sc.nextLine();
		sc.close();

		// 受け取った値をカンマで分割して配列(String型)に格納する
		String[] values = input.split(",");

		// int型に変換して別の配列に格納しなおす
		int[] intValues = new int[values.length];
		for (int i = 0; i < values.length; i++) {
			intValues[i] = Integer.parseInt(values[i].trim());
		}

		// 入力値(int型)を格納した配列をMaxSearchExec()に渡し、その中の最大値を受け取る
		int result = MaxSearchExec(intValues);

		System.out.println("入力した配列中の最大値は\"" + result + "\"です。");

	}

	protected int MaxSearchExec(int[] values) {
		int Ans = values[0];

		for (int i = 1; i < values.length; i++) {
			if (values[i] > Ans) {
				Ans = values[i];
			}
		}

		return Ans;
	}
}

実行

配列の最大値検索.gif

おわりに

アルゴリズム実装3本目でした。
配列の中身をint型に直すところはもっと効率的な書き方ができそうな気がします。
良いアイデアがあったらコメントで教えて下さい。

参考図書

基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版 [矢沢 久雄]

その他の記事リンク

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?