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

โปรแกรม C/C++ หามัธยฐานของอาร์เรย์ที่เรียงแล้ว 2 อาร์เรย์ ขนาดเท่ากัน

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

อัลกอริทึม

median(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

ตัวอย่างโค้ด (C++)

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

float median(vector arr1, vector 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;
}

int main() {
    vector arr1 = {1, 3, 4, 6, 7};
    vector arr2 = {4, 5, 7, 8, 9};
    cout << "Median: " << median(arr1, arr2);
}

ผลลัพธ์

Median: 5.5