PDA

Visualizza la versione completa : [C++] Malfunzionamento di Quick Sort iterativo


Wozywors
26-05-2018, 15:17
RAGAZZI PER PIACERE QUALCUNO SA QUAL'E' IL PROBLEMA DI QUESTO QUICK SORT ITERATIVO
GRAZIE IN ANTICIPO



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
29517

Loading