devo fare un algoritmo che dato un array di interi lungo n e 2 interi x e y mi ritorni un array che ha come primi elementi solo elementi <x e come ultimi elementi solo elementi >y in mezzo quelli compresi tra x e y estremi inclusi.
io ho ideato un algoritmo che mi pare corretto, ma vorrei conferme...
grazie per eventuali consigli o suggerimenti.codice:void scambia(int *a,int i, int j){ int t; t=a[i]; a[i]=a[j]; a[j]=t; }//end scambia void tripartizione(int *a,int x, int y,int n){ int i,j,k; i=j=0; k=n-1; while(j<=k){ if(j<i) j=i; else if(a[j]<x){ scambia(a,i,j); i++; }else if(a[j]>y){ scambia(a,k,j); k--; }else j++; }//end while }//end tripartisci

Rispondi quotando