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

JavaScriptでの補間検索


補間検索

補間検索は、キーに割り当てられた数値(キー値)で並べ替えられた配列内のキーを検索するためのアルゴリズムです。

n個の一様分布値arr[]のソートされた配列があり、配列内の特定の要素ターゲットを検索する関数を作成する必要があるとします。

位置を見つけるために次の操作を行います-

//式の考え方は、より高い値のposを返すことです

//検索する要素がarr[hi]に近い場合。そして

// arr [lo]

に近づくと値が小さくなります
pos = lo + ((x - arr[lo]) * (hi - lo) / (arr[hi] - arr[Lo]))

キー-

  • arr[]-要素を検索する必要がある配列

  • x-検索する要素

  • lo-arr []

    の開始インデックス
  • hi-arr []

    の終了インデックス

最初の引数として数値の配列を取り、2番目の引数として検索ターゲットを受け取るJavaScript関数を作成する必要があります。

この関数は、補間検索アルゴリズムを使用して、配列内のターゲットを検索する必要があります。

以下はコードです-

const arr = [1, 4, 6, 7, 9, 12, 15, 16, 17, 23, 25, 26, 27, 31];
const target = 25;
const interpolationSearch = (arr = [], target) => {
   let left = 0;
   let right = arr.length - 1;
   while (left <= right) {
      const rangeDelta = arr[right] - arr[left];
      const indexDelta = right - left;
      const valueDelta = target - arr[left];
      if (valueDelta < 0) {
         return -1;
      }
      if (!rangeDelta) {
         return arr[left] === target ? left : -1;
      }
      const middleIndex = left + Math.floor((valueDelta * indexDelta) / rangeDelta);
      if (arr[middleIndex] === target) {
         return middleIndex;
      }
      if (arr[middleIndex] < target) {
         left = middleIndex + 1;
      } else {
         right = middleIndex - 1;
      }
   };
   return -1;
};
console.log(interpolationSearch(arr, target));

出力

以下はコンソールでの出力です-

10

  1. 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>  

  2. 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>