在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP