이클립스 디버깅
Step Into(F5) 메소드 타고 들어가는 것
Step Over(F6) 메소드 안 타고 들어가는 것
Step Return(F7) 현재 함수 끝으로 가서 리턴 후 함수 호출부로 되돌아 감.
Resume(F8) 다음 브레이크 포인트까지 건너 띔.
F11 계속 누르면 디버깅 쌓임.
-> 종료한 다음 다시 하세요.
Step Into(F5) 건너띄기
window - preferences - java - debug - step filtering
use Step filters 체크
ShowView - Variable, Expression
두 개 켜 놓고.
분할정복
분할된 부분 -> 동일 부분 처리
# 가짜동전 찾기
- 3분할로 반복.
- 그렇지 않다면 N/2번 비교. 비효율적.
분할, Divide
정복, Conquer
통합, Combine
# 반복 알고리즘.
- O(n) C의 n승.
- 분할 정복으로 하면 O(logN)으로 바뀜.
# 같은 색 공간 만들기.
- 4분할 후 재귀.
이분탐색
이분탐색, Binary Search
- 자료 가운데의 항목의 키 값과 비교하여 다음 검색의 위치를 결정.
- 검색 범위를 반 씩 줄여나감.
- 정렬 된 상태여야함.
N 크다. 정렬 가능 -> '이 분 탐 색'
java.util.Arrays.binarySearch
- 이진탐색 API
- 사용 전 정렬 필수.
- int binarySearch(int[] a, int key)
- int binarySearch(int[] a, int fromIndex, int toIndex, int key)
그래도 한 번 구현해보시라.
private static int binarySearch(int[] arr,int N, int target) {
int start = 0;
int end = N-1;
int mid;
while(start<=end){
mid = (start+end) / 2;
if(arr[mid] == target)
return mid;
else if (arr[mid] > target)
end = mid -1;
else{
start = mid + 1;
}
}
return -1;
}
알고리즘
주평
- new InputStreamReader ..
- main 메서드 만들어..
# Bj20187 - 종이접기.
- 작은 부분부터 구현 해보기.
- 어? 맞는데 왜이러지 싶으면 StringBuilder 제발 사용.
# Bj2630 - 색종이 만들기
- 4분할 후 재귀.
# Bj1920 - 수 찾기.
- 이분탐색 입문.
- target, start, end, mid.
quaternary -> '4진수'
좋은 글 감사합니다.