Professional Documents
Culture Documents
Interclasare
Interclasare
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>
int a[1000],n;
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];
{ 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; }