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

JavaScriptで線形探索(リニアサーチ)を実装する方法

線形探索(リニアサーチ)とは

線形探索は、配列の先頭から順に要素を一つずつ調べ、目的の値と一致する要素を見つけ出す最も基本的な検索アルゴリズムです。事前にデータをソートしておく必要がなく、実装も非常にシンプルなため、小規模なデータ検索やプログラミング学習の入門としてよく利用されます。

以下は、JavaScriptで線形探索を実装したサンプルコードです。

サンプルコード

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result,.sample {
      font-size: 20px;
      font-weight: 500;
      color: blueviolet;
   }
   .sample{
      color:red;
   }
</style>
</head>
<body>
<h1>Implementing linear search</h1>
<div class="sample">[1,19,5,11,22,55]</div><br>
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to search for 22 in the above array</h3>
<script>
   let resEle = document.querySelector(".result");
   let BtnEle = document.querySelector(".Btn");
   let arr = [1,19,5,11,22,55];
   BtnEle.addEventListener("click", () => {
      for(let i=0;i<arr.length;i++){
         if(arr[i]===22){
            resEle.innerHTML = 'Element found at : '+i;
            break;
         }
      }
   });
</script>
</body>
</html>

コードの解説

  • 配列 arr には [1,19,5,11,22,55] という6つの数値が格納されています。
  • 「CLICK HERE」ボタンをクリックすると、for ループにより配列の先頭(インデックス0)から順に、各要素と検索対象の値22が比較されます。
  • arr[i] === 22 が成立した時点で、見つかった位置(インデックス番号)が画面に表示され、break 文によってループ処理を終了します。

実行結果

JavaScriptで線形探索(リニアサーチ)を実装する方法

「CLICK HERE」ボタンをクリックすると、次のように結果が表示されます。

JavaScriptで線形探索(リニアサーチ)を実装する方法

値22は配列の5番目の要素(インデックス4)に存在するため、「Element found at : 4」という結果が出力されます。

線形探索の計算量は最悪の場合 O(n) になりますが、データがソートされていなくても動作し、アルゴリズムが直感的で理解しやすい点が大きな魅力です。まずはこのシンプルな実装から、検索アルゴリズムの基礎を身につけてみましょう。

  1. JavaScriptで学ぶ二分探索木(Binary Search Tree)の基本と操作方法

    二分探索木とは二分探索木は、通常の木構造とは異なる特別な性質を持つデータ構造です。この性質により、データの検索・挿入・削除を効率的に行うことができます。二分探索木では、各ノードが次のルールに従わなければなりません。ノードの左の子は、必ず親ノードより小さい値を持つノードの右の子は、必ず親ノードより大きい値を持つこの規則が成り立つことで、値を探す際に「目的の値より小さければ左へ、大きければ右へ」と分岐をたどるだけで済み、探索範囲を毎回半分に絞り込めます。そのため、整列された配列に対する二分探索と同様の効率性が得られます。本記事を含む木構造のセクションでは、主にこの二分探索木を中心に解説を進めていき

  2. JavaScriptで文字列を検索する方法【search()メソッドの使い方を解説】

    JavaScriptで文字列を検索する方法 JavaScriptで文字列の中から特定の文字列を探すには、search()メソッドを使用します。このメソッドは、引数に渡した文字列(または正規表現)が対象の文字列内で最初に一致した位置(インデックス)を返し、見つからなかった場合は -1 を返します。 以下は、JavaScriptで文字列を検索するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />