Quando si codifica l'hashing estendibile, si ha la scelta di utilizzare i bit più significativi oi bit meno significativi del valore di hash per determinare a quale bucket eseguire l'hash. Utilizzando bit meno significativi ha una serie di vantaggi:hashing estendibile: perché qualcuno usa i bit più significativi?
- quando si raddoppia la directory, si può semplicemente copiare tutti i puntatori, invece di dover creare una nuova directory che li interleaves.
- È possibile semplificare la discussione dell'algoritmo non parlando nemmeno di bit, e semplicemente utilizzando l'aritmetica modulare come si farebbe con l'hashing in generale. Usare i 3 bit meno significativi per scegliere un bucket è lo stesso di h (x) = x mod 2^3.
- Non è necessario specificare in anticipo una larghezza dei numeri binari; se si utilizzano i bit più significativi, è necessario avere una lunghezza di bit specifica in mente.
Quello che non posso avvolgere la mia testa intorno è il motivo per reference dopo reference dopo reference mostra hashing estendibile fatto con bit più significativi. Per quanto ne so, l'unico vantaggio che offre i bit più significativi è un diagramma su carta (o sullo schermo) che non ha linee incrociate. C'è una buona ragione per cui così tante fonti così tanto più significative, invece che meno?
Probabilmente la ragione è quella che hai menzionato: i diagrammi sono più nitidi, dal momento che tutti questi riferimenti sono a scopo esplicativo. L'implementazione effettiva fornita nel primo riferimento, ad esempio, utilizza LSB. – rici