Ragazzi mi servirebbe una mano per capire in che modo passare le variabili alle funzioni in modo che esse vengano effettivamente modificate all'interno del corpo; ho provato con i puntatori, ma ho combinato solo casini. Grazie. Ecco il sorgente:
codice:
#include <stdio.h>
#include <stdlib.h>
int partition (int Array[], int p, int r);
void quicksort(int Array[], int p, int r);
void swap (int *b,int *a);
void main()
{
int k;
int Array[] = {43,56,0,100,2};
int p = Array[0];
int r = Array[4];
quicksort (Array,p,r);
for (k=0;k<5;k++)
printf("%d\n\n", Array[k]);
return;
}
int partition (int Array[], int p, int r)
{
int x, i, j;
x = Array[p];
i = p-1;
j = r+1;
while (i < j) {
while (Array[j--] > x);
while (Array[i++]<x);
if (i < j)
{
swap (&Array[j],&Array[i]);
}
}
return(j);
}
void quicksort(int Array[], int p, int r) {
int q;
if (p < r) {
q = partition (Array, p, r);
quicksort (Array, p, r);
quicksort (Array, q+1, r);
}
return;
}
void swap (int *b,int *a)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}