Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่ามัธยฐานหลังเพิ่มจำนวนเต็ม K ตัวใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ของจำนวนเต็ม 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