//배열의 요소가 5인 인덱스 찾기
let findIndexLinear = (arr, num) => {
for(let i=0; i<arr.length; i++) {
if(arr[i] === num) return i;
}
return `${num} not in Array.`
}
findIndexLinear([2,4,5,1,6], 6)
findIndexLinear([2,4,5,1,6], 10)
let findIndexBinary = (arr, num) => {
let head = 0;
let tail = arr.length - 1;
let mid = Math.floor((head+tail)/2)
while(arr[mid] !== num) {
// 머리가 꼬리보단 긴 경우는 배열의 없는 숫자임.
if(head>tail) return `${num} not in Array`;
if(arr[mid] < num) {
head = mid + 1;
mid = Math.floor((head+tail)/2);
} else {
tail = mid - 1;
mid = Math.floor((head+tail)/2);
}
}
// 해당 숫자의 인덱스 리턴
return mid
}
findIndexBinary([1,2,3,4,5,7], 4)
다음 탐색 알고리즘은 해쉬탐색법으로!
출처 - 노마드코더