Каков наилучший способ проверки столкновения огромного количества кругов? 
Очень легко обнаружить столкновение между двумя кругами, но если мы проверим каждую комбинацию, то она  O (n  2), которая определенно не является оптимальным решением.
Мы можем предположить, что объект окружности имеет следующие свойства:
- Координаты
 - Радиус
 - Скорость
 - Direction
 
Скорость постоянна, но направление может меняться.
Я придумал два решения, но, возможно, есть несколько лучших решений.
  Решение 1 
Разделите все пространство на перекрывающиеся квадраты и проверьте на столкновение только с кругами, которые находятся в одном квадрате. Квадраты должны пересекаться, поэтому не будет проблем, когда круг перемещается с одного квадрата на другой.
  Решение 2 
В начале нужно рассчитать расстояния между каждой парой кругов. 
Если расстояние невелико, эти пары хранятся в некотором списке, и нам нужно проверить наличие конфликтов в каждом обновлении. 
Если расстояние велико, то мы сохраняем, после чего обновление может быть столкновением (его можно вычислить, потому что мы знаем расстояние и скорость). Он должен храниться в какой-то очереди приоритетов. После того, как предварительно рассчитанное количество интервалов обновлений нужно снова проверить, а затем мы выполним ту же процедуру - поместите ее в список или снова в очередь приоритетов.
Ответы на вопросы Марка Байера
-  Это для игры? 
Это для моделирования, но его можно рассматривать также как игру -  Вы хотите пересчитать новую позицию каждые n миллисекунд, а также проверить наличие конфликтов в это время? 
Да, время между обновлениями постоянно. -  Вы хотите найти время, в которое происходит первое/любое столкновение? 
Нет, я хочу найти каждое столкновение и делать "что-то", когда это происходит. -  Насколько важна точность? 
Это зависит от того, что вы подразумеваете под точностью. Мне нужно обнаружить все столкновения. -  Это большая проблема, если очень маленькие быстро движущиеся круги иногда могут проходить друг с другом? 
Можно предположить, что скорость настолько мала, что этого не произойдет.