반응형
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);
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA] 후위연산자를 이용한 + - 연산 ( 제네릭 X) (0) | 2022.07.14 |
---|---|
[JAVA] 팩토리얼 재귀함수 (0) | 2022.07.13 |
[JAVA] 정수 받아 작은값부터 출력하기 (순열) (0) | 2022.07.11 |
[JAVA] baby-gin (0) | 2022.07.11 |
[JAVA] 정돈된 수 출력 (0) | 2022.07.11 |