Both B trees and B+ trees are for databases, not for generic in-memory access. They are also quite complex, so forget them. BST should be faster (for in-memory data access) and simpler and there are a lot of libraries supporting it. 50k isn't a lot of data, so you could even try simple array, or simple sorted array with binary search. You could also consider hash and trie, which could be even faster. In most cases, pre-emptive optimization is a bad idea. You should just pick a easy to implemen