How would you implement a data structure or collection that supports efficient range-based searching?