이진 검색 알고리즘
정의
이진 검색은 검색 간격을 반으로 반복해서 나누어 정렬된 배열에서 사용되는 검색 알고리즘입니다. 이진 검색의 아이디어는 배열이 정렬된 정보를 사용하고 시간 복잡도를 O(Log n)으로 줄이는 것입니다.
비교
시간 복잡도가 O(n)인 선형 검색에 비해 이진 검색 Big O 표기법은 O(log n)입니다.
이진 검색은 선형 검색보다 훨씬 빠르게 정렬된 배열을 검색할 수 있습니다.
실생활 예
1부터 50까지 숫자를 생각하고 있어 정답은 1
선형 검색
숫자 = 50 ? 아니
번호 = 49 ? 아니
...
숫자 = 2 ? 아니
숫자 = 1 ? 예!
최악의 경우 50번의 추측이 필요합니다!
이진 검색
숫자 = 25 ? 아니오, 덜
숫자 = 12 ? 아니오, 덜
숫자 = 6 ? 아니오, 덜
숫자 = 3 ? 아니오, 덜
숫자 = 2 ? 아니오, 덜
숫자 = 1 ? 예!
최악의 경우 6번의 추측이 필요합니다!
결론
1,000,000개의 숫자를 가정합니다!
선형 검색은 1,000,000개의 추측(최악의 경우)을 초래합니다.
이진 검색은 20개의 추측(최악의 경우)을 초래합니다.
심상
이진 검색
선형 검색
코딩
const binarySearch = (sortedArr, value) => {
let left = 0;
let right = sortedArr.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
const midVal = sortedArr[mid];
if (midVal === value) {
return mid;
} else if (midVal < value) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
};
Reference
이 문제에 관하여(이진 검색 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anasnmu/binary-search-algorithm-3f2j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)