C++を使用して2つのソートされた配列をマージします。
問題の説明
与えられた2つのソートされた配列リスト。与えられた2つのソートされた配列を1つにマージする関数を記述します
Arr1[] = {10,15, 17, 20}
Arr2[] = {5, 9, 13, 19}
Result[] = {5, 9, 10, 13, 15, 17, 19, 20} アルゴリズム
1. Traverse both array 1.1. If arr1[i] < arr2[j] 1.1.1. Add arr[i] to new array 1.1.2. Increment ‘i’ and index of result array ‘k’ 1.2. If arr2[i] < arr1[j] 1.2.1. Add arr[j] to new array 1.2.2. Increment ‘j’ and index of result array ‘k’ 2. Repeat procedure until both arrays are exhausted 3. Return resultant array
例
#include <iostream>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
void mergeSortedArrays(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) {
if (arr1[i] < arr2[j]) {
result[k] = arr1[i];
++k;
++i;
} else {
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 dispalyArray(int *arr, int n){
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
}
int main(){
int arr1[] = {10, 15, 17, 20};
int arr2[] = {5, 9, 7, 13, 19};
int result[SIZE(arr1) + SIZE(arr2)];
cout << "First sorted array:" << endl;
dispalyArray(arr1, SIZE(arr1));
cout << "Second sorted array:" << endl;
dispalyArray(arr2, SIZE(arr2));
mergeSortedArrays(arr1, SIZE(arr1), arr2, SIZE(arr2), result);
cout << "Final sorted array:" << endl;
dispalyArray(result, SIZE(result));
return 0;
} 出力
上記のプログラムをコンパイルして実行する場合。次の出力を生成します-
First sorted array: 10 15 17 20 Second sorted array: 5 9 7 13 19 Final sorted array: 5 9 7 10 13 15 17 19 20
-
C#を使用して、並べ替えられた2つの配列をリストにマージします
2つの並べ替えられた配列をリストにマージするには、最初に2つの並べ替えられた配列を設定します- int[] array1 = { 1, 2 }; int[] array2 = { 3, 4 }; それをリストに追加してマージします- var list = new List<int>(); for (int i = 0; i < array1.Length; i++) { list.Add(array1[i]); list.Add(array2[i]); } 次に、ToArray()メソッドを使用して、以下
-
heapqを使用してPythonで2つのソートされた配列をマージしますか?
このセクションでは、Pythonのheapqモジュールを使用して2つのソートされたリストをマージする方法を説明します。例として、list1 =[10、20、30、40]およびlist2 =[100、200、300、400、500]の場合、マージ後、list3 =[10、20、30、40、100、 200、300、400、500] このタスクを実行するには、heapqモジュールを使用します。このモジュールには、標準ライブラリモジュールとしてPythonが付属しています。したがって、使用する前にインポートする必要があります。 import heapq heapqモジュールにはいくつかのプロパ