public boolean binarySearch(List<Integer> numbers, int value) {
if (numbers == null || numbers.isEmpty()) {
return false;
}
int comparison = numbers.get(numbers.size() / 2);
if (value == comparison) {
//success
return true;
}
if (value < comparison) {
return binarySearch(numbers.subList(0, numbers.size() / 2), value);
} else {
return binarySearch(numbers.subList(numbers.size() / 2 + 1, numbers.size()), value);
}
}
if (numbers == null || numbers.isEmpty()) {
return false;
}
int comparison = numbers.get(numbers.size() / 2);
if (value == comparison) {
//success
return true;
}
if (value < comparison) {
return binarySearch(numbers.subList(0, numbers.size() / 2), value);
} else {
return binarySearch(numbers.subList(numbers.size() / 2 + 1, numbers.size()), value);
}
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
quickSort (0) | 2017.02.24 |
---|---|
Queue (0) | 2017.02.24 |
Stack(TwoStack) (0) | 2017.02.24 |
Stack(getMin) (0) | 2017.02.24 |
문자열 rotate 체크 (0) | 2017.02.24 |