Если «все динамично», вы теряете преимущества структур данных с быстрым поиском и медленным вставлением.
В идеале вы можете найти некоторую структуру в ваших данных, чтобы упростить время выполнения.Возможно, все движущиеся полигоны движутся в одном направлении, поэтому вы можете использовать их в качестве системы отсчета, эффективно делая их статичными.Возможно, движения небольшие, поэтому структуру данных можно обновлять на месте, а не восстанавливать с нуля при каждом проходе.Или частицы и многоугольники имеют движения, ограниченные небольшими окрестностями, так что трудноразрешимая большая проблема может быть сведена к меньшим задачам.
Сказать, что «все движется» без каких-либо дополнительных ограничений, сродни утверждению, что данные полностьюслучайный от итерации к итерации;следовательно, ключом к вашей проблеме является определение того, можно ли повторно использовать какие-либо вычисления из предыдущей итерации.Это будет диктовать соответствующую структуру данных и алгоритм.