검색
검색의 종류
순차 검색
데이터가 정렬되어 있을 경우
데이터가 정렬되어 있지 않을 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static void main(String[] args) { int[] arr = {2, 4, 7, 9, 11, 19, 23}; for(int i=0; i<arr.length; i++) { if(arr[i] == 10) { System.out.println("찾았다!!"); break; } else if(arr[i] > 10) { System.out.println("10 없음!!"); break; } } } | cs |
이진 검색
- 자료의 중앙에 있는 원소를 선택
- 중앙 원소의 값과 찾고자 하는 목표 값을 비교하는데 "목표값 < 중앙 원소의 값" 의 경우 왼쪽 반에 대해서, "목표값 > 중앙 원소의 값"의 경우에는 오른쪽 반에 대해서 이진 검색을 수행합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class 이진검색 { public static void main(String[] args) { int[] arr = {2, 4, 7, 9, 11, 19, 23}; boolean searchResult = binarySearch(arr, 0, arr.length-1, 7); System.out.println(searchResult); } private static boolean binarySearch(int[] arr, int start, int end, int key) { int middle = (start+end) / 2; if(start == end) { return false; } if(key < arr[middle]) { return binarySearch(arr, start, middle-1, key); } else if(key > arr[middle]) { return binarySearch(arr, middle+1, end, key); } else { return true; } } } | cs |
인덱스
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
문자열 (String) (0) | 2019.02.16 |
---|---|
Sort(정렬)에 대해서 - Selection Sort (0) | 2019.02.09 |
부분 집합 문제 (0) | 2019.02.09 |
2차원 배열 (0) | 2019.02.03 |
Sort(정렬)에 대해서 (1) - Bubble Sort와 Counting Sort (0) | 2019.01.20 |