By Ilya Grigorik on March 26, 2009 A good choice of an algorithm or a data structure can make or break an application. By and large, Ruby provides enough native primitives such as Array, Hash, and Set, to get you by in most cases, but we've all ran into situations where the performance or the memory footprint of these structures left us wanting for more. Sensing a nice opportunity, Kanwei Li and A