반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class LowerUpper {
public static int upperBound(int arr[],int front, int rear, int key) {
int mid;
while(front<rear) {
mid = (front + rear)/2;
if(arr[mid] <= key) front = mid +1;
else rear = mid;
}
return rear;
}
public static int lowerBound(int arr[],int front,int rear, int key) {
int mid;
while(front<rear) {
mid = (front + rear) /2;
if(arr[mid] < key) front = mid +1;
else rear = mid;
}
return rear;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
로워바운디드와 업퍼바운디드 key값을 기준으로 초과하는값이 처음나오는 것을 찾을때 upper
이상인것이 처음 나오는것을 찾을때는 lower를 사용한다.
front는 왼쪽 rear을 오른쪽을 생각하면 되는데 mid 값 을 기준으로 key 값이 오른쪽에잇냐 왼쪽에 잇냐가 중요하다.
반응형
'Algorithm' 카테고리의 다른 글
TreeSet : 트리에서 인덱스 번호 반환, 범위 값출력 (0) | 2020.03.06 |
---|---|
Line Sweep 알고리즘 (백준 : 2261) JAVA (0) | 2020.03.06 |
JAVA : LinkedList , ArrayList 순환도중에 값 삭제하기 (0) | 2020.03.06 |
알고리즘 공부순서 (2) | 2020.03.06 |
LCA (0) | 2020.03.04 |