C++で線形探索を使って配列の最小要素を求めるプログラム
本記事では、線形探索(リニアサーチ)の手法を用いて、配列内の最小要素を求めるC++プログラムを紹介します。このプログラムの計算量はO(n)です。線形探索は配列の先頭から順に要素を一つずつ確認していくシンプルなアルゴリズムであり、配列がソートされている必要がないため、どのような配列にも適用できるのが特徴です。
アルゴリズム
開始 データ要素を配列に格納する。 インデックス「0」の値を最小値変数に代入する。 最小値を他のデータ要素と順番に比較する。 最小値がそのインデックスの値より大きい場合は、値を更新する。 最小値を出力する。 終了
サンプルコード
#include<iostream>
using namespace std;
int main() {
int n, i, minimum, a[10] = {1, 6, 7, 10, 12, 14, 12, 16, 20, 26};
char ch;
minimum = a[0];
cout<<"\nThe data element of array:";
for(i = 0; i < 10; i++) {
cout<<" "<<a[i];
if(minimum > a[i])
minimum= a[i];
}
cout<<"\n\nMinimum of the data elements of array using linear search is: "<<minimum;
return 0;
}
実行結果
The data element of array: 1 6 7 10 12 14 12 16 20 26 Minimum of the data elements of array using linear search is: 1
このプログラムでは、まず配列の先頭要素(インデックス0)を最小値として初期化し、その後、残りの要素を順番に比較していきます。現在の最小値より小さい要素が見つかるたびに最小値を更新することで、ループが終了した時点で配列全体の最小値が求められます。要素数をnとすると、すべての要素を一度ずつ確認するため、計算量はO(n)となります。
-
【C言語】二分探索(バイナリサーチ)で配列内の最小要素を見つける方法
C言語には、目的のデータを効率よく見つけ出すための探索アルゴリズムとして、主に次の2つの手法が用意されています。 線形探索(リニアサーチ) 二分探索(バイナリサーチ) 二分探索(バイナリサーチ)とは この手法はソート済み(整列済み)のリストにのみ適用できます。 対象のリストを半分ずつに分割しながら、探索範囲を絞り込んでいきます。 探したいキーと、リスト中央の要素を比較します。 比較の結果、次の3つの場合が考えられます。 中央の要素がキーと一致した場合 → 探索は成功し、その時点で終了します。 中央の要素がキーより大きい場合 → 左側の領域で探索を続けます。 中央の要素がキーより小さ
-
C言語の線形探索で配列内の最小値を見つける方法を徹底解説
C言語の探索アルゴリズムの種類C言語で使われる代表的な探索手法は、大きく分けて以下の2つです。線形探索(リニアサーチ)二分探索(バイナリサーチ)線形探索とは線形探索は、配列の先頭から順番に要素を一つずつ比較しながら目的のキーを探す、最も基本的な探索アルゴリズムです。データがソート(整列)されていなくても使用できる実装が非常にシンプルで理解しやすい欠点:データ数が多いほど処理時間が長くなり、システムの効率を低下させる可能性がある入出力のイメージは以下の通りです。入力:ソートされていない要素のリスト、探索キー出力:・成功 … キーが見つかった場合・失敗 … キーが見つからなかった場合例1:線形探索