L’algoritmo T3: il codice
Questo è il codice Julia dell’algoritmo T3, ovvero il torneo a eliminazione diretta spiegato nel primo capitolo del libro (l’implementazione fa uso della ricorsione per realizzare il tabellone del torneo, come quello mostrato nella Figura 1 del libro).
# Questa funzione realizza il torneo a eliminazione diretta
# chiamato T3 nel libro. La sequenza di valori dei giocatori
# deve contenere un numero di elementi che sia una potenza
# di 2. L'insieme viene suddiviso ricorsivamente in due parti
# uguali fino a quando contiene due soli elementi: a quel
# punto la funzione restituisce il massimo dei due valori.
# Al termine delle due chiamate ricorsive la funzione restituisce
# il massimo dei due valori restituiti dalle chiamate stesse.
function t3( a, sinistra, destra)
if (sinistra == destra-1)
if a[sinistra]>a[destra]
return a[sinistra]
else
return a[destra]
end
else
centro = div(sinistra + destra, 2)
campionesinistro = t3(a,sinistra, centro)
campionedestro = t3(a,centro + 1, destra)
if campionesinistro>campionedestro
return campionesinistro
else
return campionedestro
end
end
end
