[javascript] 반복문을 이용한 이진 탐색 알고리즘 구현하기
이진 탐색 알고리즘 개요
이진 탐색 알고리즘은 정렬된 배열에서 특정한 값을 찾는 알고리즘이다. 이 알고리즘은 배열의 중간값을 기준으로 값을 비교하고, 찾고자 하는 값이 중간값보다 작으면 왼쪽 절반을, 크면 오른쪽 절반을 탐색하는 방식으로 동작한다. 이렇게 찾고자 하는 값을 찾을 때까지 이 과정을 반복한다.
반복문을 이용한 이진 탐색 알고리즘 구현
이진 탐색 알고리즘을 구현할 때 반복문을 사용하여 구현할 수 있다. 반복문을 이용한 구현은 별도의 스택을 사용하지 않기 때문에 메모리를 덜 사용하고, 일반적으로 재귀를 사용한 구현보다 더 빠르게 동작한다.
다음은 반복문을 이용한 이진 탐색 알고리즘의 구현 예시이다.
예시 코드
function binarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
참고 자료
- 이진 탐색 알고리즘 - 위키백과: https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%ED%83%90%EC%83%89_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
- 자바스크립트를 사용한 자료 구조와 알고리즘 - Amazon: https://www.amazon.co.kr/dp/8966262349