PDA

View Full Version : divide et impera?


robertinik83
06-04-2005, 19:33
ciao a tutti,ho avuto un esame in cui dovevo fare un programma divide et impera in grado,partendo da un vettore di interi,dividere i numeri all'interno di tale vettore in >;<;= ad un certo numero "v".
Il tutto era da fare in uno pseudocodice.
io l'ho fatto cosi',mi ssapete dire se è giusto?:
f(int A[],int v,int i,int j){
if(i==j)
{
if(A[i]<v) r.min++;
if(A[i]>v) r.max++;
if(A[i]==v) r.ugl++;
}
else{
int m=INF((j+j)/2);
f(A,v,i,m);
f(A,v,m+1,j);
}
return r;
}

GRAZIE!

kk3z
06-04-2005, 19:43
i e j cosa rappresentano? r cos'è?

if(A[i]=v) sarà sempre true, meglio A[i] == v

int m=(j+j)/2; questa addizione non ha molto senso...

r non credo sia un'int...sarà una struttura...non puoi fare return r con una funzione che ritorna int.

onestamente non so cos'è uno pseudocodice...

robertinik83
06-04-2005, 19:46
allora i e j sono gli indici di inizio e fine Array (inizialmente avranno un valore rispettivo di 0 e A.length-1).
m trova la metà del vettore A
r è la struttura che dovrebbe contenere il numero di valori presenti nel vettore A che sono ><= a v

robertinik83
07-04-2005, 14:41
nessuno sa darmi una risposta?