線形検索アルゴリズムは、リスト内の特定の要素を見つけるために使用される簡単な方法です。 このアルゴリズムは、目的の要素が見つかるまで、またはリスト全体が走査されるまで、リスト内の各要素を順番にチェックすることによって機能します。
使い方
- リストの最初の要素から開始します。
- 現在の要素をターゲット値と比較します。
- 現在の要素がターゲット値と等しい場合、アルゴリズムは終了し、要素の位置を返します。
- そうでない場合は、リスト内の残りの要素を繰り返し処理します。
- リスト全体を調べてもターゲット要素が見つからない場合、アルゴリズムは見つからないことを示す値を返します。
例
整数のリストがあり、リスト内で数値 34 を見つけたいとします。
リスト: {12、45、67、89、34、56、23、90}
- 最初の要素から開始します: 12。必要な数ではありません。
- 次の要素 45 に移動します。目的の数値ではありません。
- 残りの要素 67、89、34 を続行します。要素 34 は目的の数値と一致します。
- アルゴリズムは終了し、34 の位置、つまり 4 を返します。
C++ のコード例
#include <iostream>
#include <vector>
int linearSearch(const std::vector<int>& arr, int target) {
for(int i = 0; i < arr.size(); ++i) {
if(arr[i] == target) {
return i;
}
}
return -1;
}
int main() {
std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};
int target = 34;
int result = linearSearch(numbers, target);
if(result != -1) {
std::cout << "Element " << target << " found at position " << result << std::endl;
} else {
std::cout << "Element " << target << " not found in the array" << std::endl;
}
return 0;
}
指定された例では、 linearSearch
関数を使用して整数のリストから数値 34 を検索しました。 結果はリスト内の 34 の位置(位置は 0 から始まります)、または番号が見つからない場合は -1 になります。