피드로 돌아가기
Dev.toBackend
원문 읽기
O(n)에서 O(log n)으로의 전환을 통한 탐색 연산 횟수 획기적 단축
Linear Search vs Binary Search — Differences, Code & Complexity
AI 요약
Context
데이터 규모 증가에 따른 단순 선형 탐색의 연산 비용 상승 문제 분석. 정렬되지 않은 데이터셋에서 타겟 값을 찾기 위한 순차적 접근 방식의 시간 복잡도 한계 직면.
Technical Solution
- Sorted Array 전제 조건 확보를 통한 탐색 범위의 지수적 감소 설계
- 중앙값(Mid) 비교를 통한 불필요한 탐색 영역의 50% 제거 로직 적용
- Left와 Right 포인터 조정을 통한 탐색 구간의 동적 축소 구현
- Array 구조를 활용한 인덱스 기반의 Constant Time 접근 방식 채택
- 중복 데이터 존재 시 Left 방향 탐색을 유지하는 Modified Binary Search 설계
- Linked List 사용 시 Mid 지점 탐색에 O(n)이 소요되는 구조적 병목 파악 및 Array 사용 결정
실천 포인트
1. 데이터셋의 정렬 상태 확인 및 Binary Search 적용 가능 여부 검토
2. 데이터 구조가 Linked List인 경우 인덱스 접근 비용을 고려하여 Array 변환 검토
3. 중복 값 처리 요구사항에 따른 Binary Search 로직 수정 여부 확인