[java] 중간 값 찾기 알고리즘

배열이 주어졌을 때, 중간 값(median)을 찾는 알고리즘을 구현해보겠습니다.

알고리즘 설명

  1. 입력으로 주어진 배열을 오름차순으로 정렬합니다.
  2. 배열의 크기가 홀수인 경우, 중간 인덱스의 값을 반환합니다.
  3. 배열의 크기가 짝수인 경우, 중간 인덱스의 값과 중간 인덱스 - 1의 값을 더한 후 2로 나눕니다. 그 결과를 반환합니다.

예시 코드

import java.util.Arrays;

public class MedianAlgorithm {
    public static int findMedian(int[] arr) {
        Arrays.sort(arr);
        int length = arr.length;
        if (length % 2 == 0) {
            return (arr[length / 2] + arr[length / 2 - 1]) / 2;
        } else {
            return arr[length / 2];
        }
    }

    public static void main(String[] args) {
        int[] arr = {5, 3, 8, 2, 9, 1, 7, 4, 6};
        int median = findMedian(arr);
        System.out.println("중간 값: " + median);
    }
}

실행 결과

중간 값: 5

참고 자료