配列内の複数の値を検索する方法


  1. 線形探索法: 最も基本的な方法は、線形探索法を使用することです。これは、配列内の各要素を順番に比較し、目的の値を見つけるまで続ける方法です。

    def linear_search(array, targets):
       found_indices = []
       for i in range(len(array)):
           if array[i] in targets:
               found_indices.append(i)
       return found_indices
    array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    targets = [2, 5, 9]
    result = linear_search(array, targets)
    print(result)  # 出力: [1, 4, 8]

    上記の例では、linear_search関数はarray内のtargetsに一致する値のインデックスを返します。

  2. ハッシュマップを使用した効率的な検索: もし配列が大きく、検索が頻繁に行われる場合は、ハッシュマップを使用することが推奨されます。ハッシュマップを使用すると、要素の検索が平均的に定数時間で行えます。

    def hash_search(array, targets):
       hashmap = {}
       for i in range(len(array)):
           hashmap[array[i]] = i
       found_indices = []
       for target in targets:
           if target in hashmap:
               found_indices.append(hashmap[target])
       return found_indices
    array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    targets = [2, 5, 9]
    result = hash_search(array, targets)
    print(result)  # 出力: [1, 4, 8]

    上記の例では、hash_search関数はハッシュマップを作成し、targets内の値に対応するインデックスを取得します。

これらの方法を使用することで、配列内の複数の値を効率的に検索することができます。必要に応じて、他の検索アルゴリズムやデータ構造も検討してみてください。