Il y a plusieurs dizaines de types de ramasse-miettes. Les algorithmes peuvent être regroupés en deux grandes catégories : les algorithmes de type marquage-balayage (en Anglais : mark-and-sweep) et les algorithmes copiants (en Anglais : copying).
Les deux types d'algorithmes nécessitent un parcours de l'ensemble des objets accessibles dans la mémoire. Ce parcours commence par un ensemble d'objets que l'on appelle les racines. Puis, chaque objet accessible directement ou indirectement par les racines est parcouru récursivement.
La différences entre les deux catégories d'algorithmes concerne l'action effectuée pendant le parcours.