chiedo nuovamente scusa
ho provato ad implementarlo io, ma non mi ordina nulla!
codice:
#include<stdio.h>
#include<stdlib.h>
void xpartition(int *a, int n, int *p, int x) {
int i, j, h;
double t;
i = 1;
j = n;
while ((i < j) && (a[i] < x)) {
i++;
}
while ((i < j) && (x < a[j])) {
j--;
}
while (i < j) {
t = a[i];
a[i] = a[j];
a[j] = t;
i++;
j--;
while (a[i] < x) {
i++;
}
while (x < a[j]) {
j--;
}
}
*p = j;
}
int main() {
int *vet,n,i;
int *pp, p, x;
double a[10];
printf("\nQuanti elementi vuoi inserire nell'array?\n");
scanf("%d",&n);
vet=(int *) malloc (n*sizeof(int));
printf("\nInserisci l'elemento di partizionamento x: \n");
scanf("%d",&x);
for(i=0;i<n;i++){
printf("\nInserisci il %d elemento dell'array: \n",i+1);
scanf("%d",&vet[i]);
}
pp = &p;
xpartition(a, n, pp, x);
printf("\n?L'array ordinato e' il seguente: \n");
for(i=0;i<n;i++)
printf(" %d \n",vet[i]);
system("pause");
return 0;
}
consigli?