ホームページ >ウェブフロントエンド >jsチュートリアル >JS配列検索における半検索の実装方法を詳しく解説
この記事では主に JSarraysearch の原理、実装スキル、および関連する Notes を具体的な例に基づいて紹介します。次に
この記事の例では、JS配列検索における半探索の実装方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
1. メソッドの原理:
指定されたシーケンス配列 arr から特定の値を検索する場合、半分の検索メソッドは次のことを行います:
1.検索範囲の開始点を決定します: 開始点 startIndex = 0、終了点 endIndex = arr.length - 1;
2. 開始点 middle = Math.floor((終了点 - 開始点) に基づいて中間点を決定します。 ) / 2);
3. startIndex 1b4c45d75f4da4353c0e2422a0a1fee3= endIndex になるまで比較します。
II コード:
// 该例的写法适用于序列为由小到大的数组 function binarySearch(arr, value) { var startIndex = 0, endIndex = arr.length - 1; middle = Math.floor((endIndex - startIndex) / 2); while (arr[middle] !== value && startIndex < endIndex) { if (arr[middle] > value) { endIndex = middle - 1; } else if (arr[middle] < value) { startIndex = middle + 1; } middle = Math.floor((endIndex - startIndex) / 2); } return (arr[middle] !== value) ? -1 : middle; }
III. 利点と欠点:
(1) 利点:
各検索では、検索される配列項目の数が半分に減るため、線形検索方法よりもパフォーマンスが向上します (特に配列が多い場合に顕著です) items);
(2) 欠点:
シーケンス配列にのみ適用可能、このメソッドを通常の 配列で使用する前に、配列をソートする必要があります
以上がJS配列検索における半検索の実装方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。