[Java] 이진검색 재귀함수로 구현하기

2022. 7. 13. 16:55·Java/코딩테스트 연습 & 실습
import java.util.Scanner;

public class BinarySearchRecursion {
	// 2진검색 (재귀)
	static int binarySearch(int[] arr, int start, int end, int key) { // (배열, 시작 인덱스, 끝 인덱스, 찾을 값)
		if (start <= end) {
			int mid = (start + end) / 2; //중앙값

			if (arr[mid] == key) { // 중앙값이 찾을 값과 같다면 mid 리턴
				return mid; 
				
			} else if (arr[mid] > key) {
				return binarySearch(arr, start, mid -1, key); //중앙값이 찾으려는 값보다 크면 끝 인덱스를 중앙값-1로 설정
				
			} else if (arr[mid] < key){
				return binarySearch(arr, mid + 1, end, key); //중앙값이 찾으려는 값보다 작으면 시작 인덱스를 중앙값+1로 설정
			}
		} 
		return -1; //찾을 값이 없으면 -1
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr = {1,3,5,7,9,11,13,14,16,17,18}; //정렬이 되어 있어야 한다.
		
		for(int a : arr) {System.out.print(a+" ");} // 어레이 출력
		
		System.out.println("\n찾을 값을 입력하세요 : ");
		int user_input = sc.nextInt();
		
		//만든 2진 검색 메서드 사용
		System.out.println(binarySearch(arr, 0, arr.length-1, user_input) + "번째 인덱스에 존재");
	}
}

'Java > 코딩테스트 연습 & 실습' 카테고리의 다른 글

[Java] 깊이우선탐색 (DFS) 미로찾기 스택구현  (2) 2022.07.15
[Java] 스택을 이용한 후위표기 계산기  (0) 2022.07.14
[Java] (실습) Baby-gin  (1) 2022.07.11
[Java] (실습) 자바 정돈된 수  (0) 2022.07.11
[Java] (실습) 자바 로또 프로그램  (0) 2022.07.11
'Java/코딩테스트 연습 & 실습' 카테고리의 다른 글
  • [Java] 깊이우선탐색 (DFS) 미로찾기 스택구현
  • [Java] 스택을 이용한 후위표기 계산기
  • [Java] (실습) Baby-gin
  • [Java] (실습) 자바 정돈된 수
현기
현기
  • 현기
    현기의 개발블로그
    현기
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • Front-End (39)
        • Next (5)
        • React (8)
        • React Native (11)
        • Flutter (0)
        • Vue (1)
        • JSP (9)
        • HTML, CSS, JS (5)
      • Back-End (16)
        • Node.js (3)
        • Spring (8)
        • Flask (1)
        • AWS (4)
      • DB (5)
        • Oracle (4)
        • MySQL (1)
      • Python (7)
      • Java (27)
        • 자바 이론 (17)
        • 코딩테스트 연습 & 실습 (10)
      • 자료구조 & 알고리즘 (7)
        • 코딩테스트 (6)
        • 알고리즘 (1)
      • 블록체인 (0)
      • 프롬프트 엔지니어링 (0)
      • CS 지식 (5)
      • IT뉴스 (0)
      • 일상 (3)
      • etc (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    next-intl
    Express
    서블릿
    node.js
    DI
    REST API
    JSP
    파이썬
    IS-A
    react-native-chart-kit
    Spring
    포스트맨
    JDBC
    자바스크립트
    자바
    티스토리챌린지
    리액트 네이티브
    쓰레드
    오라클
    오블완
    그리디
    스택
    큐
    react
    React Native
    Java
    React Native Chart
    상속
    Python
    자바 스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
현기
[Java] 이진검색 재귀함수로 구현하기
상단으로

티스토리툴바