728x90
반응형
정렬되지 않은 리스트 검색 시 주어진 값에 맞는 원소를 찾기 위해선 리스트를 모두 찾아봐야 한다.
하지만 리스트가 정렬되어 있다면 이진 탐색(binary search)를 사용하는 것이 매우 효율적이다성능 - O(logn)
public static boolean binarySearch(final List<Integer> numbers, final Integer value){
if(numbers == null || numbers.isEmpty()){
return false;
}
final Integer comparison = numbers.get(numbers.size()/2);
if(value.equals(comparison)){
return true;
}
if(value < comparison){
binarySearch(numbers.subList(0, numbers.size()/2), value);
}else{
binarySearch(numbers.subList(numbers.size()/2 + 1, numbers.size() + 1), value);
}
}
728x90
반응형
'그 외 ... (정리해야함) > 질문과 답변' 카테고리의 다른 글
final 키워드는 객체 참조에 어떤 영향을 미치는가? (0) | 2019.05.02 |
---|---|
자바에서 객체란 무엇인가? (0) | 2019.05.02 |
Queue 와 Deque는 무엇인가? (0) | 2019.05.02 |
배열과 리스트의 관계를 알아보자. (0) | 2019.05.02 |
Comparable과 Comparator 인터페이스의 차이는 무엇인가? (0) | 2019.04.22 |