In pratica ho studiato un algoritmo che serve a rialliniare due database differenti in rete. Le parole in realtà, come detto, sono hash che identificano righe di un altra tabella. Le righe sono molto grandi.[supersaibal]Originariamente inviato da VaLvOnAuTa
Scusa la domanda stupida ma... perchè? [/supersaibal]
Dunque. L'agoritmo mira a fare una ricerca binaria. Cioè, è simile ad una ricerca binaria.
Per fare questa ricerca binaria ho la necessita di sapere quante righe ci sono tra: il primo hash, l'hash nel mezzo, e l'hash finale (alla lista di hash).
Per vedere quanti hash ci sono, non posso contarli tutti quelli che ci sono tra HASH_1 e HASH_2, sarebbe troppo dispendioso in termini di carico CPU.
Dunque, l'idea per contarli è questa:
Numero tutti gli hash nel loro ordine alabetico:
alfa 1
beta 2
comodino 3
domino 4
elicottero 5
fenice 6
ghianda 7
hotel 8
Imola 9
Livorno 10
Mamozzo 11
Nostradamus 12
Quanti hash ci sono tra Elicottero e Livorno?
(10-5)+1=6
Tra alfa e domino?
(4-1)+1=4
Mi basta prendere gli indici degli hash e sottrarli per ottenere così il numero corrispettivo degli hash che stanno tra di loro
Capito?