Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 K 추가 정수 뒤의 중앙값

<시간/>

이 문제에서 n개의 정수 배열이 주어지고 배열에 K개의 요소를 추가한 다음 결과 배열의 중앙값을 찾습니다. 주어진 조건에서 N+k는 홀수입니다.

문제를 이해하기 위해 예를 들어보겠습니다.

입력 -

array = {23, 65, 76, 67} ; k =1

출력 -

67

이 문제를 해결하기 위해 주어진 요소를 오름차순으로 정렬한 다음 배열 끝에 k개의 요소를 추가합니다. 즉, k개의 더 큰 요소를 취합니다.

n+k가 홀수라는 조건이 주어집니다. 따라서 중앙값은 (n+k)/2 공식을 사용하여 계산할 수 있습니다. .

예시

중앙값을 찾는 프로그램,

#include <bits/stdc++.h>
using namespace std;
int findMedianAfterK(int arr[], int n, int K) {
   sort(arr, arr + n);
   return arr[((n + K)/2)];
}
int main() {
   int array[] = {3,56, 8, 12, 67, 10 };
   int k = 3;
   int n = sizeof(array) / sizeof(array[0]);
   cout<<"The median after adding "<<k<<" elements is "<<findMedianAfterK(array, n, k);
   return 0;
}

출력

The median after adding 3 elements is 56