C++の2つのソートされた配列のK番目の要素
このチュートリアルでは、2つのソートされた配列のマージされた配列からk番目の要素を見つけるプログラムを作成します。
問題を解決するための手順を見てみましょう。
- 2つのソートされた配列を初期化します。
- サイズm+nの空の配列を初期化します。
- 2つのアレイを新しいアレイにマージします。
- マージされた配列からk-1要素を返します。
例
コードを見てみましょう。
#include <iostream> using namespace std; int findKthElement(int arr_one[], int arr_two[], int m, int n, int k) { int sorted_arr[m + n]; int i = 0, j = 0, index = 0; while (i < m && j < n) { if (arr_one[i] < arr_two[j]) { sorted_arr[index++] = arr_one[i++]; }else { sorted_arr[index++] = arr_two[j++]; } } while (i < m) { sorted_arr[index++] = arr_one[i++]; } while (j < n) { sorted_arr[index++] = arr_two[j++]; } return sorted_arr[k - 1]; } int main() { int arr_one[5] = {1, 3, 5, 7, 9}, arr_two[5] = {2, 4, 6, 8, 10}; int k = 7; cout << findKthElement(arr_one, arr_two, 5, 4, k) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
7
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
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
-
C++でソートされた順序で2つのソートされていない配列をマージします。
問題の説明 ソートされていない2つの配列を受け取り、それらをソートされた順序で新しい配列にマージする関数を記述します。 arr1[] = {10, 5, 7, 2} arr2[] = {4, 17, 9, 3} result[] = {2, 3, 4, 5, 7, 9, 10, 17} アルゴリズム 1. Merge two unsorted array into new array 2. Sort newly create array 例 #include <iostream> #include <algorithm> #define SIZE(arr) (size