Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Bidirectional lookup algorithm? (Updated: further info.)

by jmacloue (Beadle)
on Jan 05, 2015 at 16:26 UTC ( [id://1112208]=note: print w/replies, xml ) Need Help??


in reply to Bidirectional lookup algorithm? (Updated: further info.)

It seems you are asking a wrong question - if you want to do fast lookups you need to have a pair of sorted lists (e.g., two hashes) which need lots of RAM, if you want to use as little RAM as possible - you will need to search over an unsorted list during at least one lookup which of course is very slow.

I'm all with the guys suggesting using a ready-made solution like SQLite (and, yes, it is slow but not as slow as walking through an unsorted array in Perl). Unless, of course, your data allows some kind of optimization - e.g., if your keys and values are sorted so that the order is the same (like pairs (1,3), (2,4), (3,5) ...). In this case you can implement, for example, a binary search algorithm over a part of array and beat SQLite performance.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1112208]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-03-29 00:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found