int BinarySearch(int arr[], int target) {
int left = 0;
int right = arr.length-1;
int mid;
while(left<=right){
mid = (left+right) / 2;
if(arr[mid] == target)
return mid;
else if(arr[mid] > target)
right = mid-1;
else
left = mid+1;
}
return -1;
}
1. 내가 찾아야 할 범위를 left ~ right 로 설정한다.
2. 정답을 mid로 간주하고 유효한지 확인한다.
3. 2를 따지며 left, right를 줄여나간다. (right = mid-1, left = mid+1)
4. left > right가 되면 종료한다.
'JAVA' 카테고리의 다른 글
If문 vs Switch문 (0) | 2023.03.16 |
---|---|
배열 복사 (얕은 복사, 깊은 복사) (0) | 2023.02.06 |
[Java] substring (문자열 자르기) (2) | 2023.01.21 |
[JAVA] HashMap 기본 및 정렬 (0) | 2023.01.19 |
[Java] BigInteger(큰 정수) (0) | 2023.01.18 |