-
[Java 실습] 이진 검색 재귀 함수 응용Java/Java 실습 2022. 7. 13. 17:41
이진 검색에 재귀 함수를 응용해서 사용해 보았다.
package Day16; import java.util.Scanner; public class BinSearch { static int binSearch(int[] a, int start, int end, int key) { int middle = (start + end) / 2; while (start <= end) { // middle 값과 찾는 key값이 같으면 if (a[middle] == key) { return middle; // middle 값보다 찾는 key값이 크면 } else if (a[middle] < key) { return binSearch(a, middle + 1, end, key); // middle 값보다 찾는 key값이 작으면 } else if (a[middle] > key) { return binSearch(a, start, middle - 1, key); } } return -1; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.print("요솟수 : "); int num = sc.nextInt(); int[] x = new int[num]; System.out.println("오름차순으로 입력하세요."); System.out.print("x[0]: "); x[0] = sc.nextInt(); // 오름차순으로 숫자 입력하기 for (int i = 1; i < num; i++) { do { System.out.print("x[" + i + "]: "); x[i] = sc.nextInt(); } while (x[i] < x[i - 1]); } System.out.print("검색할 값: "); int ky = sc.nextInt(); int answer = binSearch(x, 0, num-1, ky); System.out.println("값은 x[" + answer + "]에 있습니다."); } }
'Java > Java 실습' 카테고리의 다른 글
[Java 실습] DFS(깊이 우선 탐색) 미로 탐색(스택) (0) 2022.07.15 [Java 실습] 스택 후위 표기 계산기 (0) 2022.07.14 [Java 실습] Baby-gin (1) 2022.07.12 [Java 실습] 성적 관리 프로그램 (0) 2022.07.12 [Java 실습] 정돈된 수와 개수 출력하기 (0) 2022.07.11