Metoda interclasarii foloseste cel putin 2 vectori ordonati pentru a creea un alt vector ordonat ce contine toate elementele acestora.
Acest exemplu foloseste 2 vectori ordonati crescator si formeaza un al treilea continand toatele elementele lor in ordine crescatoare.
int main() { int a[20],b[30],c[50],m,n,i,j,k; cin>>n>>m; for(i=1;i<=n;i++)fin>>a[i]; for(j=1;j<=m;j++)fin>>b[j]; i=1;j=1;k=0; while(i<=n&&j<=m) { if(a[i]<=b[j])c[++k]=a[i++]; else c[++k]=b[j++]; } while(i<=n)c[++k]=a[i++]; while(j<=m)c[++k]=b[j++]; for(i=1;i<=k;i++) cout<<c[i]<<' '; return 0; }
explicatie: a=1,3,5,7,8; b=2,4,6,8; c=1,2,3,4,5,6,7,8.
-a crescator; b descrescator; c crescator:
int main() { int a[20],b[30],c[50],i,j,n,m,k; fin>>n>>m; for(i=1;i<=n;i++)fin>>a[i]; for(j=1;j<=m;j++)fin>>b[j]; i=1;j=m;k=0; while(i<=n&&j>=1) { if(a[i]<b[j])c[++k]=a[i++]; else c[++k]=b[j--]; } while(i<=n)c[++k]=a[i++]; while(j>=1)c[++k]=b[j--]; for(i=1;i<=k;i++)fout<<c[i]<<' '; return 0; }
-a descrescator; b descrescator; c crescator:
int main() { int a[20],b[30],c[50],n,m,j,i,k; fin>>n>>m; for(i=1;i<=n;i++)fin>>a[i]; for(j=1;j<=m;j++)fin>>b[j]; i=n;j=m;k=0; while(i>=1&&j>=1) { if(a[i]<b[j])c[++k]=a[i--]; else c[++k]=b[j--]; } while(i>=1)c[++k]=a[i--]; while(j>=1)c[++k]=b[i--]; for(i=1;i<=k;i++) fout<<c[i]<<' '; return 0; }
-a crescator; b descrescator; c descrescator:
int main() { int a[20],b[30],c[50],m,n,i,j,k; fin>>n>>m; for(i=1;i<=n;i++)fin>>a[i]; for(j=1;j<=m;j++)fin>>b[j]; i=n; j=1;k=0; while(i>=1&&j<=m) { if(a[i]>b[j])c[++k]=a[i--]; else if(a[i]==b[j]){c[++k]=a[i--];j++;} else c[++k]=b[j++]; } while(i>=1)c[++k]=a[i--]; while(j<=m)c[++k]=b[j++]; for(i=1;i<=k;i++) fout<<c[i]<<' '; return 0; }