Informatică, întrebare adresată de mariscatioxhsnf, 9 ani în urmă

Interclasarea a două șiruri 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 -1 0 1 2 4 6 7

Răspunsuri la întrebare

Răspuns de S0unds
12
#include <iostream>
using namespace std;

int main()
{
int N,M,v[100000],w[100000],i,j,k=0;
int vw[200000];
cin>>N;
for(i=0;i<N;i++)
cin>>v[i];
cin>>M;
for(i=0;i<M;i++)
cin>>w[i];
i=0; j=0;
//Interclasarea
while(i < N && j < M)
{
if(v[i] < w[j])
{
vw[k] = v[i];
k++;
i++;
}
else
{
vw[k] = w[j];
k++;
j++;
}
}
if(i <= N)
{
for(int p = i; p < N; p++)
{
vw[k] = v[p];
k++;
}
}
if(j <= M)
{
for(int p = j; p < M; p++)
{
vw[k] = w[p];
k++;
}
}
for(int p = 0; p < k; p++)
cout << vw[p] << " ";
}
Alte întrebări interesante