티스토리 뷰
/*
* 이진검색
* 주어진 정렬된 배열 중에서 사용자가 입력한 키 값을 검색
* 키가 있으면 배열 인덱스와 함께 메시지 출력
* 키가 없으면 메시지 출력
*/
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값이 배열 내에 존재하지 않습니다.");
}
}
}
'java,web study > 1주차 (7월 1일~7일)' 카테고리의 다른 글
선택정렬 (Select sort) (0) | 2013.07.09 |
---|---|
배열의 행과 열의 합 계산하기 (자바의정석 5-11) (0) | 2013.07.08 |
동전계산 프로그램 (자바의정석 5-6) (0) | 2013.07.08 |
로또번호 생성 & 추첨 프로그램 (0) | 2013.07.08 |
이클립스 단축키 (0) | 2013.07.02 |
댓글