Sto cercando una struttura di dati che supporti ricerche approssimative efficienti di chiavi (ad esempio, la distanza di Levenshtein per le stringhe), restituendo la corrispondenza più vicina possibile per la chiave di input. La struttura di dati più adatta che ho trovato finora sono gli alberi di Burkhard-Keller , ma mi chiedevo se ci fossero altre / migliori strutture di dati per questo scopo.
Modifica: ulteriori dettagli sul mio caso specifico:
- Le stringhe di solito hanno una differenza Levenshtein abbastanza grande l'una dall'altra.
- Le stringhe hanno una lunghezza massima di circa 20-30 caratteri, con una media più vicina a 10-12.
- Sono più interessato alla ricerca efficiente che all'inserzione, poiché costruirò un insieme di dati prevalentemente statici che voglio interrogare in modo efficiente.