Another question to ask is if this is really going to be a bottleneck. Lots of times things are compute expensive, but if they are expensive in a section of code that is not performance sensitive then it doesn't really matter.
This is for collision detection, but for how many moving objects? Handling collisions against two or three objects is very different from handling collisions for hundreds or even thousands of objects.
If you are only testing against a few items chances are it doesn't matter which algorithm you pick.
Since this isn't in For Beginners, I'll point out that learning to use a profiler is an important developer's skill. You need to actually measure the performance before you are able to improve it. Too many people spend hours trying to improve code that isn't a bottleneck, never realizing the performance issues are coming from a completely unexpected area of code.
You need to measure first, then once you have measurements you need to make modifications, then measure again to compare against the originals. Only then can you tell if your changes are having the desired effect.