Leksykon IT › Programowanie › Sweep and prune

Sweep and prune

Programowanie Svenska → Zaktualizowano: 2026-10-24

Algorytm fazy szerokiej, który sortuje obwiednie obiektów wzdłuż każdej osi i testuje tylko pary, których przedziały nakładają się na wszystkich osiach.

Sprawdzanie każdego obiektu z każdym innym to O(n²) i przy tysiącach brył jest beznadziejne. Sweep and prune (także „sort and sweep”) rzutuje początek i koniec każdej obwiedni na osie x, y i z, sortuje listy i przechodzi po nich; dwie obwiednie mogą się zderzyć tylko wtedy, gdy ich przedziały nakładają się na wszystkich osiach. Cała reszta odpada od razu.

Sztuczka polega na spójności czasowej — obiekty między klatkami przesuwają się niewiele, więc posortowane listy są już prawie posortowane, a sortowanie przez wstawianie działa niemal liniowo. Metoda wywodzi się z biblioteki I-COLLIDE Minga Lina i Dinesha Manochy z początku lat 90. i trafiła do praktycznie każdego silnika fizyki jako tani pierwszy przebieg przed kosztowną fazą dokładną.

← Wróć do leksykonu