RAGAZZI PER PIACERE QUALCUNO SA QUAL'E' IL PROBLEMA DI QUESTO QUICK SORT ITERATIVO
GRAZIE IN ANTICIPO
codice:
int partizione(int a[],int p,int n1)
{
int i=p;
int j=n1;
while(i<j&&a[j]>a[p])
i++;
while (i<j&&a[i]<=a[p])
j--;
while(i<j)
{
swap(&a[i],&a[j]);
i++;
j--;
}
swap(&a[p],&a[j]);
return j;
}
void swap(int *m,int *g)
{
int temp;
temp=*m;
*m=*g;
*g=temp;
}
void Quicksort(int a[],int p,int n1)
{
int l;
l = partizione(a,p,n1);
if (l-p<n1-l)
{
if (p<l-1)
Quicksort(a,p,l-1);
if (l+1<n1)
Quicksort(a,l+1,n1);
}else{
if (l+1<n1)
Quicksort(a,l+1,n1);
if (p<l-1)
Quicksort(a,p,l-1);
}
}
Il richiamo è Quicksort(a,0,n);
L'OUTPUT E' IN ALLEGATO
6.PNG