본문 바로가기

프로그래밍/Algorithm

MedianofTwoSortedArrays

https://leetcode.com/problems/median-of-two-sorted-arrays/

 

Median은 중앙값이라고 표현한다
Average(or mean) 평균값과는 다르다
평균값은 극단적인 값에 영향을 받는다

 

예를 들어 100가구인 한 마을의 1가구당 연간 소득이 5천만원이라고 하자.

단 1가구가 연간 30억원의 소득을 올린다면 나머지 99가구는 2천만원 정도의 소득밖에 되지 않는다. 

즉, 평균이라는 것은 표본들이 균일한 경우가 아니라면 원하는 결과를 얻기 어렵다. 

따라서 이런 성질이 다른 표본들(=outlier)을 제거한 후 다시 계산하는 방법들이 많이 사용된다. 


중앙값은 홀수 일때 가운데 값을,
짝수 일때는 가운데 두 값의 산순평균 값을 가진다.

 

    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int[] ints = IntStream.concat(Arrays.stream(nums1), Arrays.stream(nums2)).sorted().toArray();
        int middleIndex = ints.length / 2;
        if (ints.length % 2 == 0) {
            return ((double)ints[middleIndex] + (double)ints[middleIndex-1]) / 2;
        } else {
            return ints[middleIndex];
        }
    }

 

다른 수치로는 최빈값(mode)라는게 있다. 

빈도를 기준으로 계산한다 .

 

그 외에도 집단의 특성을 나타낼 수 있는 수치로 분산(variance),  표준 편차(standard deviation), 표준 오차(standard error), 범위(range), 사분위수(quartile) 등등이 있다.