In this work, we introduce bidirectional collision detection --- a new algorithmic tool that applies to the collision problems that arise in many isomorphism problems. For the group isomorphism problem, we show that bidirectional collision detection yields a deterministic n^((1 / 2) log n + O(1)) time algorithm whereas previously the n^(log n + O(1)) generator-enumeration algorithm was the best result for several decades. For the hard special case of solvable groups, we combine bidirectional collision detection with methods from the author's previous work to obtain a deterministic square-root speedup over the best previous algorithm. We also show a deterministic square-root speedup over the best previous algorithm for testing isomorphism of rings. We can even apply bidirectional collision detection to the graph isomorphism problem to obtain a deterministic T^(1 / sqrt(2)) speedup over the best previous deterministic algorithm. Although the space requirements for our algorithms are greater than those for previous deterministic isomorphism tests, we show time-space tradeoffs that interpolate between the resource requirements of our algorithms and previous work.