Sortarea topologică este ordonarea vârfurilor unui graf direcționat fără contur în funcție de ordinea parțială dată de muchiile digrafului pe mulțimea vârfurilor acestuia.
Pentru Conte
există mai multe secvențe consistente ale vârfurilor sale, care pot fi obținute folosind o sortare topologică, de exemplu:
Se poate observa că oricare două vârfuri adiacente care nu sunt incluse în relația de ordine parțială pot fi permutate în succesiune .
Unul dintre primii algoritmi și cel mai potrivit pentru execuția manuală.
Să fie dat un grafic simplu orientat fără contur . Se notează prin mulțimea de vârfuri astfel încât . Adică , mulțimea tuturor vârfurilor de la care există un arc până la vârf . Fie șirul dorit de vârfuri.
pentru moment alege orice vârf astfel încât și șterge din toatePrezența a cel puțin unui contur în grafic va duce la faptul că la o anumită iterație a ciclului nu va fi posibilă selectarea unui nou vârf .
Să fie dat un grafic . În acest caz, algoritmul va rula după cum urmează:
Etapa | |||||||
---|---|---|---|---|---|---|---|
0 | |||||||
unu | |||||||
2 | |||||||
3 | |||||||
patru | |||||||
5 |
În al doilea pas , vârful poate fi ales în loc de , deoarece ordinea dintre și nu este specificată.
Pe un computer, o sortare topologică poate fi făcută în timp și memorie O( n ) prin parcurgerea tuturor nodurilor folosind căutarea depth-first și scoaterea vârfurilor la punctul de ieșire.
Cu alte cuvinte, algoritmul este următorul:
Pasul algoritmului:
Exemplul va fi pe același grafic, dar ordinea în care selectăm vârfurile de ocolit este c, d, e, a, b.
Etapa | Actual | alb | Stivă (gri) | Ieșire (negru) |
---|---|---|---|---|
0 | — | a, b, c, d, e | — | — |
unu | c | a, b, d, e | c | — |
2 | d | a fi | c, d | — |
3 | e | a, b | c, d, e | — |
patru | d | a, b | c, d | e |
5 | c | a, b | c | d, e |
6 | — | a, b | — | c, d, e |
7 | d | a, b | — | c, d, e |
opt | e | a, b | — | c, d, e |
9 | A | b | A | c, d, e |
zece | b | — | a, b | c, d, e |
unsprezece | A | — | A | b, c, d, e |
12 | — | — | — | a, b, c, d, e |
13 | b | — | — | a, b, c, d, e |
Cu ajutorul sortării topologice, se construiește o secvență corectă de acțiuni, fiecare dintre acestea putând depinde de cealaltă: succesiunea de promovare a cursurilor de formare de către studenți, instalarea programelor folosind managerul de pachete , construirea codurilor sursă a programelor folosind Makefiles .
Este posibil să construiți o listă de afișare a obiectelor într- o proiecție izometrică cunoscând relațiile ordinale pereche dintre obiecte (care dintre cele două obiecte ar trebui desenat primul).
Algoritmi de sortare | |
---|---|
Teorie | Complexitate O notație Relația de comandă Sortați tipuri durabil Intern Extern |
schimb valutar | |
Alegere | |
inserții | |
fuziune | |
Fara comparatii | |
hibrid | |
Alte | |
nepractic |