Interclasarea a doua siruri sortate
Se dau două șiruri v și w cu N respectiv M elemente întregi în ordine crescătoare. Să se afișeze elementele celor două șiruri în ordine crescătoare.
Date de intrare
De la tastatură se va citi numărul N și un șir de N numere întregi, reprezentând elementele șirului v. Pe urmă se va citi numărul M și un șir de M numere întregi.
Date de ieșire
Pe ecran se vor afișa elementele celor două șiruri în ordine crescătoare.
Restricții și precizări
1 ≤ N, M ≤ 100 000
-2 000 000 000 ≤ v[i], w[i] ≤ 2 000 000 000
Exemplu
Date de intrare Date de ieșire
3
1 4 6
4
-1 0 2 7
Mentiune: Varianta NU trebuie sa contina un al treilea sir, ci trebuie doar sa ordoneze aceste doua siruri crescator si sa afiseze aceasta ordonare)
Răspunsuri la întrebare
#include<iostream>
using namespace std;
int v[100001], w[100001], x[200002];
int main()
{
int n, m;
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
cin >> m;
for(int i = 1; i <= m; i++)
cin >> w[i];
int k = 0, i = 1, j = 1;
while(i <= n && j <= m){
if(v[i] < w[j])
x[++k] = v[i], i++;
else
x[++k] = w[j], j++;
}
while(i <= n)
x[++k] = v[i], i++;
while(j <= m)
x[++k] = w[j], j++;
for(int i = 1; i <= k; i++)
cout << x[i] << ' ';
return 0;
}
Nota: pentru a intelege acest algoritm, iti recomand sa te uiti la videoclipul acesta: https://www.youtube.com/watch?v=H73KtBSAf1w
(daca nu merge cauta pe youtube "zecelainfo interclasare", de aici am invatat si eu)