Skip to Main Content
Sorting and searching are classic problems in computing and several RAM based solutions exist. We present sorting and searching algorithms using TCAMs. Using these algorithms, one can perform sorting in O(n) memory cycles using a TCAM. Furthermore, inserts and deletes to a sorted list and priority queue operations can be done in O(1) cycles. A searching problem may typically involve finding if a query point is contained in a given set of ranges. We call this the point intersection problem. The ranges may be inserted or deleted from the set dynamically. For these problems, we present several algorithms with different time, space and implementation complexity tradeoffs. One of the algorithms uses only O(1) time for all operations and O(1) space for each range in the set when the ranges are disjoint. More precisely, one can perform disjoint range search in one memory cycle using a 2-stage pipeline. We also provide several solutions in scenarios where the ranges in the set are allowed to overlap.