Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C/C++ สำหรับค่ามัธยฐานของอาร์เรย์ที่จัดเรียงสองชุดที่มีขนาดเท่ากัน?


ที่นี่เราจะมาดูวิธีหาค่ามัธยฐานของอาร์เรย์ที่จัดเรียงสองตัวที่มีขนาดเท่ากัน เราจะใช้ C++ STL เพื่อเก็บองค์ประกอบอาร์เรย์ หลังจากได้รับสองอาร์เรย์ เราจะรวมเป็นหนึ่งเดียว เมื่อมีการรวมอาร์เรย์สองอาร์เรย์ที่มีขนาดเท่ากันเข้าด้วยกัน อาร์เรย์สุดท้ายจะมีองค์ประกอบเป็นจำนวนคู่เสมอ เราต้องใช้องค์ประกอบกลาง 2 รายการ จากนั้นจึงหาค่าเฉลี่ยขององค์ประกอบเหล่านั้นเป็นค่ามัธยฐาน

อัลกอริทึม

ค่ามัธยฐาน(arr1, arr2)

Begin
   arr3 := array after merging arr1 and arr2
   sort arr3
   len := length of arr3
   mid := len/2
   median := (arr3[mid] + arr3[mid-1])/2
   return median
End

ตัวอย่าง

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
float median(vector<int> arr1, vector<int> arr2) {
   vector arr3(arr1.size() + arr2.size());
   merge(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), arr3.begin());
   sort(arr3.begin(), arr3.end());
   int len = arr3.size();
   int mid = len/2;
   return float(arr3[mid] + arr3[mid-1])/2;
}
main() {
   vector<int> arr1 = {1, 3, 4, 6, 7};
   vector<int> arr2 = {4, 5, 7, 8, 9};
   cout << "Median: " << median(arr1, arr2);
}

ผลลัพธ์

Median: 5.5