labatteria.it • Leggi argomento - ing.informatici a me... ricerca dicotomica ricorsiva


ing.informatici a me... ricerca dicotomica ricorsiva

Qui nessuna conversazione sara' off-topic: tutti gli argomenti sono ammessi (eccetto quelli che rientrano negli altri forum).

Messaggioda Shanik il lun mar 16, 2009 11:17 am

stavo implementando questo algoritmo, do una spulciata a wikipedia, ma secondo me c'è un errore.. riporto il codice di wikipedia

/* Funzione per Ricerca Binaria con ricorsione */
int BinSe_ri(int[] arr, int n, int start, int end)
{
if (start > end) return -1;
int middle = (start + end) / 2;

if (n <arr> arr[middle])
return BinSe_ri(arr, n, middle + 1, end);

else return middle;
}

l'errore secondo me è quello selezionato, vi spiego perchè... visto che in C se facciamo una divisione intera, viene presa appunto solo la parte intera del numero (es. 9:2=4,5 quindi 4) non capisco perchè li fa +1..

in un array l'indice parte da 0, non da 1... quindi il numero medio dovrebbe essere appunto il numero della variabile middle..

quando nel sottoprogramma c'è -1 sono d'accordo, ma non mi trovo con quel +1.. io avrei lasciato solo middle..

sbalgio?

se non sbaglio vado a correggere wikipedia :D
Avatar utente
Shanik
guru delle pelli
guru delle pelli
 
Messaggi: 2923
Iscritto il: mer ott 26, 2005 6:23 am
Località: Ariano Irpino (AV) - Fisciano (SA)

Messaggioda duca_conte * banned * il lun mar 16, 2009 12:18 pm

se me lo chiedevi un du anni fa potevo aiutarti!dho...ora cerco in giro cmq :tru
duca_conte * banned *
Buddy Rich
Buddy Rich
 
Messaggi: 4441
Iscritto il: ven dic 26, 2008 5:07 pm
Località: KING OF PolmonelLandia

Messaggioda Shanik il lun mar 16, 2009 1:18 pm

risolto... aveva ragione wikipedia.. :D
Feedback Manager | Come funziona? | Download Software

Immagine
Avatar utente
Shanik
guru delle pelli
guru delle pelli
 
Messaggi: 2923
Iscritto il: mer ott 26, 2005 6:23 am
Località: Ariano Irpino (AV) - Fisciano (SA)

Messaggioda duca_conte * banned * il lun mar 16, 2009 1:21 pm

mejo dai!!!mi evitavi figure da cioccolataio...hehe :tru
duca_conte * banned *
Buddy Rich
Buddy Rich
 
Messaggi: 4441
Iscritto il: ven dic 26, 2008 5:07 pm
Località: KING OF PolmonelLandia

Messaggioda Barattolo il lun mar 16, 2009 7:38 pm

piu' che altro non capisco cosa sia quel "<arr>", penso ci sia un errore, penso li' ci vada un ">" e manchi invece la parte relativa a "<", no?
In questa ipotesi (ovvero che sia sbagliato) e' corretto perche' se "n" e' maggiore di arr[middle] la ricerca prosegue da arr[middle+1] in poi
"An artist is someone who produces things that people don't need to have but that he - for some reason - thinks it would be a good idea to give them."
"Humans have a marked appreciation for beauty and aesthetics which, combined with the human desire for self-expression, has led to cultural innovations such as art, literature and music."
Confuso possessore di "un pedale del tamburo basso del doppio del cobra del ferro di Tama"
Avatar utente
Barattolo
guru delle pelli
guru delle pelli
 
Messaggi: 2529
Iscritto il: mar mar 09, 2004 7:26 pm
Località: :|

Messaggioda Shanik il lun mar 16, 2009 7:53 pm

penso significhi minore di, maggiore di..
Feedback Manager | Come funziona? | Download Software

Immagine
Avatar utente
Shanik
guru delle pelli
guru delle pelli
 
Messaggi: 2923
Iscritto il: mer ott 26, 2005 6:23 am
Località: Ariano Irpino (AV) - Fisciano (SA)

Messaggioda Barattolo il lun mar 16, 2009 11:09 pm

e' il forum che sminchia le parentesi angolari... quello su wikipedia e' diverso, e' cosi'
/* Funzione per Ricerca Binaria con ricorsione */
int BinSe_ri(int[] arr, int n, int start, int end)
{
if (start > end) return -1;
int middle = (start + end) / 2;

if (n "minore di" arr[middle])
return BinSe_ri(arr, n, start, middle - 1);

if (n "maggiore di" arr[middle])
return BinSe_ri(arr, n, middle + 1, end);

else return middle;
}

"An artist is someone who produces things that people don't need to have but that he - for some reason - thinks it would be a good idea to give them."
"Humans have a marked appreciation for beauty and aesthetics which, combined with the human desire for self-expression, has led to cultural innovations such as art, literature and music."
Confuso possessore di "un pedale del tamburo basso del doppio del cobra del ferro di Tama"
Avatar utente
Barattolo
guru delle pelli
guru delle pelli
 
Messaggi: 2529
Iscritto il: mar mar 09, 2004 7:26 pm
Località: :|

Messaggioda Shanik il lun mar 16, 2009 11:28 pm

ah giusto...
Feedback Manager | Come funziona? | Download Software

Immagine
Avatar utente
Shanik
guru delle pelli
guru delle pelli
 
Messaggi: 2923
Iscritto il: mer ott 26, 2005 6:23 am
Località: Ariano Irpino (AV) - Fisciano (SA)

Messaggioda sl0wg33k * BANNED * il mar mar 17, 2009 3:48 pm

ma non c'è una cosa tipo The Matrix che uno s'infila una cannocchia nel capoccione per 10 secondi trema un pò e quando si sveglia è un dio della programmazione? 8)

Hello World! :lol:
Let them be a martyr but don't let them suffer For these chains I fear they will have to linger for life [groundation]
Avatar utente
sl0wg33k * BANNED *
guru delle pelli
guru delle pelli
 
Messaggi: 2313
Iscritto il: dom apr 13, 2008 1:17 am
Località: where you wouldn't be


http://www.youtube.com/watch?v=NP5_CJg7oKQ

Torna a Tutto il resto

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite