記事のディレクトリ
このチュートリアルでは、線形探索について学習します。さらに、C言語での線形検索の例があります。
線形検索は最も単純な検索アルゴリズムであり、リスト内の要素を順番に検索できます。必要な要素が見つかるまで、各要素を一方の端からチェックします。
線形検索はどのように機能しますか?
以下の手順に従って、以下のリストで要素k = 1を検索します。
- 最初の要素から始めて、kと要素xを1つずつ比較します。
- x == kの場合、インデックスを返します。
- それ以外の場合は、戻り値が見つかりません。
線形探索アルゴリズムの擬似コード
LinearSearch(array, key)
for each item in the array
if item == value
return its index
Cの例
// Linear Search in C
#include <stdio.h>
int search(int array[], int n, int x) {
// Going through array sequencially
for (int i = 0; i < n; i++)
if (array[i] == x)
return i;
return -1;
}
int main() {
int array[] = {
2, 4, 0, 1, 9};
int x = 1;
int n = sizeof(array) / sizeof(array[0]);
int result = search(array, n, x);
(result == -1) ? printf("Element not found") : printf("Element found at index: %d", result);
}
線形検索の複雑さ
時間計算量:O(n)
空間計算量:O(1)
線形探索の適用
小さい配列(<100アイテム)での検索操作に使用されます。
参考文献
[1]パレワラボPvt。Ltd.Linear Search [EB / OL] .https://www.programiz.com/dsa/linear-search,2020-01-01。