Topologisk sortering vil si å lage en lovlig rekkefølge av alle elementer i en graf med rettede kanter. En svært enkel algoritme for å gjøre dette er å finne en node med null inn-kanter, føre den opp i lista/utskriften, fjerne den og oppdatere inngraden til nodene den peker mot for så å gjenta til det ikke er flere noder igjen. Dette er imidlertid svært lite effektivt, man risikerer eksponensiell økning i tidsbruken med økende datamengde. En forbedret algoritme tar ut alle nodene med inngrad null og setter dem i en "boks". Den tar så en node fra boksen, registrerer noden i utskriften, fjerner den fra grafen og oppdaterer inngraden til nodene rundt. Den sjekker så om noen av nodene rundt har fått inngrad null, og hvis de har det settes de inn i boksen. Så tar den for seg neste node i boksen.