Là một thuật toán dùng để sắp xếp các đỉnh của một đồ thị có hướng không chứa chu trình (DAG) thành một thứ tự tuyến tính sao cho với mỗi cạnh từ đỉnh A đến đỉnh B, đỉnh A luôn đứng trước đỉnh B trong thứ tự đó
Đặc điểm chính:
Ứng dụng
Cách hoạt động (nguyên lý)
Có hai cách phổ biến để thực hiện topological sort:
Đầu vào (Input):
Đồ thị có hướng không chu trình (DAG) dưới dạng danh sách kề:
Biểu diễn dưới dạng code:
graph_example = {
'A': ['B', 'C'],
'B': ['D'],
'C': ['D'],
'D': []
}
Hình minh họa:
A
| \
v v
B C
\/
v
D
Chạy từng bước
Hàng đợi ban đầu: [A]
['A', 'B', 'C', 'D']
Output
['A', 'B', 'C', 'D']
Thứ tự này đảm bảo mọi đỉnh đều đứng trước các đỉnh mà nó trỏ tới, đúng theo ràng buộc của topological sort.