티스토리 뷰


/*
 * 이진검색
 * 주어진 정렬된 배열 중에서 사용자가 입력한 키 값을 검색
 * 키가 있으면 배열 인덱스와 함께 메시지 출력
 * 키가 없으면 메시지 출력
 */

package cbnu;

import java.util.Scanner;

public class BiSearch {

public static void main(String[] args) {
// TODO Auto-generated method stub
int targetArray[] = { 4, 7, 12, 24, 31, 35, 37, 44, 45 };
// 정렬이 된 배열

System.out.println("key값을 입력 : ");
Scanner sc = new Scanner(System.in);
int key = sc.nextInt();
int mid = targetArray.length / 2;

biSearching(targetArray, key, 0, mid, targetArray.length - 1);
}

private static void biSearching(int[] targetArray, int key, int fr,
int mid, int bk) {
// TODO Auto-generated method stub
if (key > targetArray[mid] && key < targetArray[targetArray.length - 1]) {
biSearching(targetArray, key, mid + 1, (mid + bk) / 2, bk);
} else if (key < targetArray[mid] && key > targetArray[0]) {
biSearching(targetArray, key, fr, mid / 2, mid - 1);
} else if (key == targetArray[mid]) {
System.out.println("입력된 key 값 : " + key + "는 주어진 배열의 " + (mid + 1)
+ "번째 위치에 있다.");
} else {
System.out.println("key값이 배열 내에 존재하지 않습니다.");
}
}
}



TAG
댓글
댓글쓰기 폼