الگوریتم را می توان به صورت زیر توصیف کرد:
یک نمودار جهت دار با n رأس و m یال داده می شود. لازم است که رئوس آن را مجدداً شماره گذاری کنید به گونه ای که هر یال از یک راس با عدد کمتر به یک راس با عدد بالاتر منتهی شود.
به عبارت دیگر، لازم است جایگشتی از رئوس (ترتیب توپولوژیکی) مطابق با ترتیب داده شده توسط تمام یال های نمودار پیدا شود.
ما از جستجوی عمق (dfs(v))
استفاده خواهیم کرد
اگر راس خود را در زمان خروج از \(dfs(v)\) به ابتدای لیست اضافه کنیم، در پایان در این لیست شما یک مرتب سازی توپولوژیکی دریافت می کنید.
بنابراین، مرتبسازی توپولوژیکی مورد نظر — این به ترتیب نزولی زمان خروج مرتب شده است.