Search Algorithm
5190 ワード
1️⃣ Search Algorithm ?
Search Algorithmはその名の通り探す方法です.配列が指定され、検索する値がある場合は、検索する値が指定された配列に存在するかどうかを確認します.JSのArrayオブジェクトにはSearchメソッドが内蔵されている.indexOf、include、find、findIndexなど.
2▼▼リニアサーチ?
function linearSearch(array, num) {
for (let i = 0; i < array.length; i++) {
if (array[i] === num) return i;
}
return -1;
}
線形検索は上記のとおりです.すべての要素を巡回して値を探します.従ってO(N)時間複雑度を持つ.(上記のArrayオブジェクトのメソッドはこれに該当します)3バイナリ検索?
バイナリ検索は、前の線形検索よりもずっと速い検索方法です.要素を値と比較した後、サイズ比較の結果、残りの要素の半分を取り除くことができます.(バイナリ検索はソートされた配列でしか使用できません)簡単に理解すると、Up&Downゲームをプレイすることも考えられます.
3-1中間ポインタの作成
3-2の中間ポインタが値と一致する場合、indexまたはtrueが返されます.
3-3中間ポインタの値が検索値より小さい場合、検索する値は中間ポインタの右側に存在します.
3-4中間ポインタの値が検索値より小さい場合、検索する値は中間ポインタの右側、
function binarySearch(array, num) {
let left = 0;
let right = array.length - 1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === num) return num;
if (arr[mid] < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
Reference
この問題について(Search Algorithm), 我々は、より多くの情報をここで見つけました https://velog.io/@dhfkdhaneod/Search-Algorithm-haj4wsovテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol