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