Implementazioni di algoritmi/Ricerca dicotomica: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
cambio avanzamento a 100%
Nessun oggetto della modifica
Riga 1:
{{implementazioni di algoritmi}}
La '''ricerca dicotomica''' (o ricerca binaria) è un algoritmo di ricerca per individuare un determinato valore all'interno di un insieme ordinato di dati. La ricerca dicotomica richiede un accesso casuale ai dati in cui cercare.
===Implementazione in [[Python]] versione ricorsiva===
<source lang="python">
def binsearchbinsearchr(seq, search, left=0, right=None):
if right==None: right = len(seq)
center = (left =+ right) / 02
if left>right:
previous_center = -1
if searchreturn < seq[0]:-1
if candidate = search<seq[center]:
return -1
return binsearchr(seq, search, left, center-1)
while 1:
elif search < candidate>seq[center]:
center = (left + right) / 2
return binsearchr(seq, search, center+1, right)
candidate = seq[center]
else:
if search == candidate:
return center
if center == previous_center:
return - 2 - center
elif search < candidate:
right = center
else:
left = center
previous_center = center
</source>
===Implementazione in [[CPython]] versione non ricorsiva===
<source lang="python">
def binsearch(seq, search):
left = 0
right = len(seq)-1
while 1left<=right:
center = (left + right) / 2
if search == candidate<seq[center]:
right = center-1
elif search>seq[center]:
left = center+1
else:
return - 2 - center
return -1
</source>
===Implementazione in [[C]] versione ricorsiva===
<source lang="c">
int ricercaBinaria(int lista[], int x, int a, int z ) {
Line 48 ⟶ 56:
</source>
 
===Implementazione in [[C]] versione non ricorsiva===
<source lang="c">
int ricercaBinariaNonRicorsiva(int lista[], int n, int x)