A topológiai rendezés egy kontúr nélküli irányított gráf csúcsainak rendezése a digráf élei által adott részleges sorrend szerint a csúcsok halmazán.
Grófnak
csúcsainak számos konzisztens sorozata van, amelyeket topológiai rendezéssel kaphatunk meg, például:
Látható, hogy bármely két szomszédos csúcs, amely nem szerepel a részleges sorrendű relációban, permutálható a sorozatban .
Az egyik első algoritmus, és a legalkalmasabb a kézi végrehajtásra.
Legyen adott egy kontúrmentes orientált egyszerű gráf . Jelölje a csúcsok halmazával , hogy . Azaz az összes csúcs halmaza, ahonnan ív van a csúcsra . Legyen a kívánt csúcssorozat.
egyelőre válasszon egy ilyen csúcsot , és törölje az összesbőlLegalább egy kontúr jelenléte a gráfban ahhoz a tényhez vezet, hogy a ciklus egy bizonyos iterációjánál nem lehet új csúcsot kiválasztani .
Legyen adott egy gráf . Ebben az esetben az algoritmus a következőképpen fut:
lépés | |||||||
---|---|---|---|---|---|---|---|
0 | |||||||
egy | |||||||
2 | |||||||
3 | |||||||
négy | |||||||
5 |
A második lépésben a csúcs helyett választható , mivel a és közötti sorrend nincs megadva.
Számítógépen a topológiai rendezés O( n ) időben és memóriában végezhető úgy, hogy az összes csúcsot bejárjuk mélységi kereséssel , és kiadjuk a csúcsokat a kilépési ponton.
Más szavakkal, az algoritmus a következő:
Az algoritmus lépése:
A példa ugyanazon a gráfon lesz, de a kikerülendő csúcsok kiválasztásának sorrendje: c, d, e, a, b.
Lépés | Jelenlegi | fehér | Stack (szürke) | Kilépés (fekete) |
---|---|---|---|---|
0 | — | a, b, c, d, e | — | — |
egy | c | a, b, d, e | c | — |
2 | d | a, b, e | c, d | — |
3 | e | a, b | c, d, e | — |
négy | 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 |
nyolc | e | a, b | — | c, d, e |
9 | a | b | a | c, d, e |
tíz | b | — | a, b | c, d, e |
tizenegy | a | — | a | b, c, d, e |
12 | — | — | — | a, b, c, d, e |
13 | b | — | — | a, b, c, d, e |
A topológiai rendezés segítségével a műveletek helyes sorrendje épül fel, amelyek mindegyike függhet egymástól: a hallgatók tanfolyamok teljesítésének sorrendje, programok telepítése a csomagkezelő segítségével , programforráskódok létrehozása a Makefiles segítségével .
Lehetőség van objektumok megjelenítési listájának felépítésére izometrikus vetületben az objektumok közötti páros ordinális relációk ismeretében (a két objektum közül melyiket kell először megrajzolni).
Rendezési algoritmusok | |
---|---|
Elmélet | Bonyolultság O jelölés Rendelési viszony Típusok rendezése fenntartható Belső Külső |
Csere | |
Választás | |
Betétek | |
egyesülés | |
Nincs összehasonlítás | |
hibrid | |
Egyéb | |
nem praktikus |