Potrebbe essere qualcosa come:
codice:
void dividi(int *v, int isx , int idx , int conf);
void quick1(int *v, int sx, int dx);
int main(void) {
int vet[10];
quick1(vet, …, …);
return 0;
}
void dividi(int *v, int isx , int idx , int conf) {
while(v[isx]<conf) isx++;
while(v[idx]>conf) idx--;
if (isx<=idx) {
scambio(v[isx++], v[idx--]);
dividi(v, ..., ..., ...);
}
}
void quick1(int *v, int sx, int dx) {
if (sx <= dx) {
int s = sx;
int d = dx
dividi(v, ..., ..., v[(sx+dx)/2]);
if (sx<d) quick1(v, sx, d);
if (s<dx) quick1(v, s, dx);
}
}
Non hai indicato la traccia dell'esercizio, ma da quel che ho capito si tratta di quicksort.
Ti ho corretto alcune parti e l'impostazione generale.
Se hai dubbi chiama.