Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm trung vị các phần tử lưu trong 2 mảng khác nhau


Xét chương trình C++ tìm trung vị các phần tử khi các phần tử được lưu trong 2 mảng khác nhau.

Thuật toán

Begin    Hàm Median() có hai mảng a1[], a2[] và n = số phần tử mảng làm tham số:    Khởi tạo i, j bằng 0, n1, n2 bằng -1    for c từ 0 đến n, làm       if i = n, thì          n1 := n2          n2 := a2[0]          thoát vòng lặp       else if j = n, thì          n1 := n2          n2 := a1[0]          thoát vòng lặp       if a1[i] < a2[j], thì          n1 := n2          n2 := a1[i]          tăng i 1       else          n1 := n2          n2 := a2[i]          tăng j 1       done       trả về trung bình của n1 và n2. End.

Mã ví dụ

#include<iostream> #include <bits/stdc++.h> using namespace std; int Median(int a1[],int a2[], int n) {    int i = 0;    int j = 0;    int c;    int n1 = -1, n2 = -1;    for (c = 0; c <= n; c++) {       if (i == n) {          n1 = n2;          n2 = a2[0];          break;       }       else if (j == n) {          n1 = n2;          n2 = a1[0];          break;       }       if (a1[i] < a2[j]) {          n1 = n2;          n2 = a1[i];          i++;       } else {          n1 = n2;          n2 = a2[j];          j++;       }    }    return (n1 + n2)/2; } int main() {    int n1,n2, i;    cout<<"\nEnter the number of elements for 1st array: ";    cin>>n1;    int a1[n1];    for(i = 0; i < n1; i++) {       cout<<"Enter element for 1st array"<<i+1<<": ";       cin>>a1[i];    }    cout<<"\nEnter the number of elements for 2nd array: ";    cin>>n2;    int a2[n2];    for(i = 0; i < n2; i++) {       cout<<"Enter element for 2nd array "<<i+1<<": ";       cin>>a1[i];    }    if (n1 == n2)       cout << "Median is "         << Median(a1, a2, n1) ;    else       cout << "Doesn't work for arrays"       << " of unequal size";    return 0; }

Kết quả

Enter the number of elements for 1st array: 5 Enter element for 1st array1: 2 Enter element for 1st array2: 4 Enter element for 1st array3: 6 Enter element for 1st array4: 7 Enter element for 1st array5: 9 Enter the number of elements for 2nd array: 5 Enter element for 2nd array 1: 20 Enter element for 2nd array 2: 40 Enter element for 2nd array 3: 60 Enter element for 2nd array 4: 70 Enter element for 2nd array 5: 90 Median is 20