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