C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

2つの異なる配列の要素をC++の3番目の配列に交互にマージします。


問題の説明

2つの配列がある場合、結合された配列が1番目と2番目の配列の代替要素を持つように2つの配列を結合する必要があります。配列の1つに追加の要素がある場合、これらの要素は結合された配列の最後に追加する必要があります。

arr1[] = {10, 20, 30, 40}
arr2[] = {-10, -20, -30, -40}
result[] = {10, -10, 20, -20, 30, -30, 40, -40}

アルゴリズム

1. Traverse both arrays and one by one put elements into result array.
2. If one of the array exhausts then put remaining elements of other array into result array.

#include <iostream>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
void alternateMergedArray(int *arr1, int n1, int *arr2, int n2,int *result){
   int i, j, k;
   i = 0;
   j = 0;
   k = 0;
   while (i < n1 && j < n2) {
      result[k] = arr1[i];
      ++k;
      ++i;
      result[k] = arr2[j];
      ++k;
      ++j;
   }
   while (i < n1) {
      result[k] = arr1[i];
      ++k;
      ++i;
   }
   while (j < n2) {
      result[k] = arr2[j];
      ++k;
      ++j;
   }
}
void displayArray(int *arr, int n){
   for (int i = 0; i < n; ++i) {
      cout << arr[i] << " ";
   }
   cout << endl;
}
int main(){
   int arr1[] = {10, 20, 30, 40};
   int arr2[] = {-10, -20, -30, -40};
   int result[SIZE(arr1) + SIZE(arr2)];
   cout << "First array: " << endl;
   displayArray(arr1, SIZE(arr1));
   cout << "Second array: " << endl;
   displayArray(arr2, SIZE(arr2));
   cout << "Result array: " << endl;
   alternateMergedArray(arr1, SIZE(arr1), arr2, SIZE(arr2),result);
   displayArray(result, SIZE(result));
   return 0;
}

出力

上記のプログラムをコンパイルして実行する場合。次の出力を生成します-

First array:
10 20 30 40
Second array:
-10 -20 -30 -40
Result array:
10 -10 20 -20 30 -30 40 -40

  1. ソートされていない2つの配列の和集合と共通部分を見つけるC++プログラム

    この記事では、2つの指定されたソートされていない配列の和集合と共通部分を見つけるプログラムについて説明します。 2つのアレイを「A」と「B」で表します。次に、これらの配列の結合はA∪Bで示されます。 これは基本的に、指定された両方の配列のすべての要素の配列です。ただし、各要素は1回だけ繰り返されます。 これを見つけるために、別の配列を作成し、最初の配列からすべての要素をコピーします。次に、2番目の配列の要素をトラバースし、それがユニオン配列にすでに存在するかどうかを確認します。そうでない場合は、ユニオン配列に追加します。 同様に、2つの配列の共通部分はA∩Bで示されます。 これは、指定さ

  2. 要素が2つの異なる配列に格納されている要素の中央値を見つけるためのC++プログラム

    要素が2つの異なる配列に格納されている要素の中央値を見つけるために、C++プログラムを検討します。 アルゴリズム Begin Function Median()には、2つの配列a1 []、a2 []、およびn =引数としての配列の要素の数があります。範囲0〜 n、i =nの場合は実行し、n1:=n2 n2:=a2[0]はループを中断します。そうでない場合はj=nの場合、n1:=n2 n2:=a1[0]はa1[i] サンプルコード #include #include usingnamespace std; int Median(int a1 []、int a2 []、int n){int