코딩테스트
[JAVA] 이진탐색 재귀함수 구현
dackyy
2022. 7. 13. 16:18
반응형
package Day1;
import java.util.Scanner;
public class BinarySearchRecur {
static int[] arr;
static int BinarySearch(int key, int pl,int pr){
do {
int pc = (pl + pr) / 2;
if(pl>arr.length || pr<arr.length)
return -1;
if (arr[pc] == key) {
return pc;
} else if (arr[pc] < key) {
return BinarySearch(key,pc +1, pr);
} else
return BinarySearch(key, pl, pc-1);
}while(pl <= pr);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the size of array: ");
int size = sc.nextInt();
arr = new int[size];
System.out.println("오름차순으로 입력해주세요");
System.out.print("arr[0]=");
arr[0] = sc.nextInt();
for (int i = 1; i < size; i++) {
do {
System.out.print("arr[" + i + "]=");
arr[i] = sc.nextInt();
}while(arr[i] < arr[i-1]);
}
System.out.print("검색할 값을 입력하세요 :");
int idx =BinarySearch(sc.nextInt(), 0, arr.length-1);
if(idx < 0)
System.out.println("찾는 값이 없습니다");
else
System.out.print("찾는 값의 인덱스는 : "+idx);
}
}
반응형