Previously I used an algorithm that compares every object against every object, no matter their distance from eachother. This was fine for small scale purposes, however it lead to a major drop in framerate as large scale splitting and movements were introduced. Each bucket keeps track of its own objects, and finds collisions based on only the buckets adjacent and diagonal to each one. For testing purposes I drew and color coded each bucket.
White - No objects
Red - Asteroid objects
Blue - Player Objects
Magenta - Asteroid and Player Objects
All in all the algorithm has helped somewhat with the framerate problem (its tied directly to calculations per frame), however there is still a lot of lag involved with instantiating new asteroids as they are formed from splitting.