raga ho un eccezione "Exception in thread "main" java.lang.StackOverflowError" nell'esecuzione di questo programma..Credo sia dovuto al fatto ke l'array su cui ordina va da 10000 a 10000000 di elementi e non alla ricorsione infinita..potreste darmi una mano?
codice:
void q_sort(int a[], int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = a[left];
while (left < right)
{
while ((a[right] >= pivot) && (left < right))
right--;
if (left != right)
{
a[left] = a[right];
left++;
}
while ((a[left] <= pivot) && (left < right))
left++;
if (left != right)
{
a[right] = a[left];
right--;
}
}
a[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
q_sort(a, left, pivot-1);
if (right > pivot)
q_sort(a, pivot+1, right);
}
in alternativa potreste darmi un algoritmo funzionante? :P