Bu sıralama, her düğümün kendi tüm bağımlılıklarından sonra geldiği bir düzeni gösterir. Bir DAG için birden fazla geçerli topolojik sıralama olabilir.
Topolojik sıralama, yönlü asiklik graflarda (DAG) düğümleri bağımlılıklarına göre sıralayan bir algoritmadır. Her düğüm, kendisine bağımlı olan düğümlerden önce gelecek şekilde bir doğrusal sıralama oluşturur. Bu algoritma, görev planlaması, derleme sırası, kurs ön koşulları gibi bağımlılık yönetimi gerektiren birçok alanda kullanılır.
Topolojik Sıralama (Topological Sort) Algoritması algoritmasının farklı programlama dillerindeki uygulamaları aşağıda verilmiştir. Her örnek, algoritmanın temel akışını açık şekilde gösterecek biçimde sunulmuştur.
1function topologicalSort(graph: Record): { result: string[], hasCycle: boolean } { 2 const visited: Record = {}; 3 const tempVisited: Record = {}; 4 const result: string[] = [];5 let hasCycle = false;6 7 function dfs(node: string) {8 if (tempVisited[node]) {9 hasCycle = true;10 return;11 }12 if (visited[node]) {13 return;14 }15 tempVisited[node] = true;16 const neighbors = graph[node] || [];17 for (const neighbor of neighbors) {18 dfs(neighbor);19 }20 visited[node] = true;21 tempVisited[node] = false;22 result.unshift(node);23 }24 25 for (const node of Object.keys(graph)) {26 if (!visited[node]) {27 dfs(node);28 }29 }30 31 return { result, hasCycle };32}Aşağıya kendi verilerinizi girerek algoritmanın örnek çalışma akışını görebilirsiniz. Virgülle ayrılmış sayılar veya metin değerleri kullanabilirsiniz.
Girilen veri, algoritmanın pseudo kodundaki genel akışa göre örnek bir sonuca dönüştürülür.
En İyi Durum: O(V + E)
Ortalama Durum: O(V + E)
En Kötü Durum: O(V + E)
O(V) - Bu algoritmanın karmaşıklığı belirtilmemiş.
Topolojik Sıralama (Topological Sort) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar:
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.
Bu kullanım alanı, algoritmanın benzer problem aileleriyle birlikte incelenmesi için iyi bir başlangıç noktasıdır.