C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で配列の中から最大の要素を見つける方法【初心者向け解説】

このチュートリアルでは、C++を使って配列内の最大の要素を見つけるプログラムについて解説します。

ここでの課題は、あらかじめ与えられた配列の中から、最も大きい数値を取り出すことです。配列の走査(トラバース)はデータ構造操作の基本であり、検索やソートなど、さまざまなアルゴリズムの土台となる重要なテクニックなので、しっかり理解しておきましょう。

アルゴリズムの考え方

最大値を見つける手順はとてもシンプルで、以下のように進めます。

  1. 配列の最初の要素を仮の最大値として変数に格納する。
  2. 2番目以降の要素を順番に取り出し、現在の最大値と比較する。
  3. 比較対象の要素が現在の最大値より大きければ、その値で最大値を更新する。
  4. すべての要素を確認し終えた時点の値が、配列全体の最大値となる。

サンプルコード

#include <bits/stdc++.h>
using namespace std;
// 最大の整数を求める関数
int largest(int arr[], int n){
    int i;
    int max = arr[0];
    // 残りの要素を走査
    for (i = 1; i < n; i++)
        if (arr[i] > max)
            max = arr[i];
    return max;
}
int main(){
    int arr[] = {10, 324, 45, 90, 9808};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Largest in given array is " << largest(arr, n);
    return 0;
}

実行結果

Largest in given array is 9808

コードの解説

largest 関数では、まず配列の先頭要素 arr[0] を初期値として変数 max に代入しています。その後、for文を使って2番目の要素から順に max と比較し、より大きな値が見つかるたびに max を更新していきます。ループが終わった時点の max が配列全体の最大値です。

また、main 関数内の sizeof(arr) / sizeof(arr[0]) という式は、「配列全体のバイト数 ÷ 1要素分のバイト数」で配列の要素数を求めるC++の定番イディオムです。これにより、配列の長さが変わってもコードを修正せずに済みます。

このアルゴリズムの計算量は O(n) で、配列の要素数に比例した時間で処理が完了するため、非常に効率的です。線形探索による最大値・最小値の取得は、競技プログラミングや実務でも頻出の処理なので、ぜひマスターしておきましょう。

  1. Pythonで配列内の最大の要素を見つける方法を解説

    この記事では、「配列の中から最大の要素を求める」という問題の解決方法について詳しく解説します。 問題の概要 問題文:与えられた配列に対して、その中で最も大きい要素を計算して求める必要があります。 ここではブルートフォース(総当たり)アプローチを使用します。これは、配列全体を先頭から順番に走査しながら各要素を比較し、その時点での最大値を更新していくというシンプルかつ確実な手法です。 実装例 以下に具体的なコードを示します。 # 最大値を求める関数 def largest(arr, n): # 最大要素の初期値として最初の要素を設定 max = arr[0] # 配列全体を

  2. Pythonで配列内の最大要素を見つける方法【初心者向け解説】

    本記事では、配列の中から最大の要素を見つけるための解法とアプローチについて詳しく解説します。 問題の概要 配列が入力として与えられたとき、その中から最も大きい要素を見つけ出すことが課題となります。 アプローチ この問題は「線形探索」と呼ばれるシンプルな手法で解決できます。手順は以下の通りです。 まず、変数 max を配列の最初の要素で初期化します。 次に、2番目の要素から配列の末尾まで順番に走査していきます。 走査中の各要素について、現在の max の値と比較します。 要素が max より大きければ、max の値をその要素で更新します。 そうでなければ、そのまま次の要素へ進みます。 この処