Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 5

#include <iostream>

using namespace std;

int n,m,i,j,a[100],b[100],c[100],k,l;

int main()

{cin>>n;

for(i=1;i<=n;i++)

        cin>>a[i];

cin>>m;

for(i=1;i<=m;i++)

cin>>b[i];

k=0; i=j=1;

while(i<=n&&j<=m)

        if(a[i]<b[j])

        k++;

        c[k]=a[i];

        i++;

else

    {
        k++;

        c[k]=b[j];

        j++;

if(i<=n)

        for(l=i;l<=n;l++)

    {

                k++;

                c[k]=a[l];

    }

if(j<=m)

        for(l=j;l<=m;l++)

    {

                k++;

                c[k]=b[l];

    }

for(i=1;i<=k;i++)
        cout<<c[i]<<' ';

return 0;

Interclasare Divide

#include <iostream>

using namespace std;

int a[1000],n;

int interclas(int i, int m, int j)

        int b[1000];

        int x=i;

        int k=1;

        int y=m+1;

        while(x<=m&&y<=j)

    {

                if(a[x]<a[y])

                        b[k++]=a[x++];
                else

                        b[k++]=a[y++];

    }

        while(x<=m)

                b[k++]=a[x++];

        while(y<=j)

                b[k++]=a[y++];

int t=i;

for(k=1;k<=(j-i)+1;k++)

        a[t++]=b[k];

int divimp(int i,int j)

{        if(i<j)

    {

                int m=(i+j)/2;

                divimp(i,m);

                divimp(m+1,j);

                interclas(i,m,j);

    }

}
int main()

{cin>>n;

for(int i=1;i<=n;i++)

        cin>>a[i];

divimp(1,n);

for(int i=1;i<=n;i++)

        cout<<a[i]<<' ';

        return 0;    }

You might also like