Python 中的拓扑排序2024 年 8 月 29 日 | 阅读 3 分钟 在本教程中,我们将学习深度优先搜索的一个重要应用。我们将理解拓扑排序的概念、它的工作原理以及如何使用 Python 编程语言实现它。最后,我们将学习算法的时间复杂度以及拓扑排序的应用。让我们来介绍一下拓扑排序。 什么是拓扑排序?拓扑排序是图论中的一个重要应用,用于解决许多现实生活中的问题。它是一种算法,接收一个有向无环图,并返回节点的序列。每个节点都会出现在指向它的其他节点之前。有向无环图是一种图,它在一个节点到另一个节点之间具有有向边,而不会产生任何环。请记住,如果图不是有向无环图,拓扑排序将不起作用。数组中的节点顺序称为拓扑顺序。 假设我们有一组任务,每个任务都依赖于其他任务。我们想以这样一种方式安排这些任务,以确保依赖关系不会被违反。在任务链中后面的任何任务,只有在它前面的所有任务都完成后才能执行。 图的拓扑排序有助于我们维持这种排序。 每个图可能有一个以上的拓扑排序。这取决于图中节点的入度。该算法从入度为 0 的节点(没有传入边)开始。 算法以下是拓扑排序算法。
我们在过程结束时获得的结果数组称为有向图的拓扑顺序。如果还有一些节点剩下但它们有传入边,这意味着图不是无环的。如果给定的图不是无环的,则不存在拓扑排序。 Python 拓扑排序代码输出 The Topological Sort Of The Graph Is: [0, 1, 2, 3, 4] 拓扑排序时间复杂度拓扑排序的时间复杂度为 O(M +N),其中 M 是图中的边数,N 是图中的节点数。 应用拓扑排序提供了许多现实生活中的解决方案——
结论本教程包含了拓扑排序算法的概念及其实现。拓扑排序在现实生活应用中具有自身的重要性。在探索和处理树和图时,它起着至关重要的作用。拓扑排序使过程更简单高效,因此强烈建议清楚地理解它。 |
Python 编程语言提供了一系列用于处理图形用户界面(GUI)应用程序的框架。Tkinter 或 Tk 接口是 Python 中最常用的用于构建基于图形用户界面(GUI)的应用程序的接口之一。某些应用程序需要验证文本字段...
阅读9分钟
Python 的控制台是什么意思?本质上,控制台(也称为 Shell)是一个命令行解释器,它一次处理用户的输入或一个命令。如果没有错误,则执行命令并产生必要的输出;否则,将发生错误...
阅读 2 分钟
在以下教程中,我们将了解如何使用 Python 编程语言识别车牌。我们将在此项目中使用 OpenCV 来识别车牌,并使用 python pytesseract 从车牌中提取字符和数字。...
阅读9分钟
引言 Python 是一种被全球开发人员使用的编程语言。Python 的基本特性之一是面向对象编程(OOP)。它允许程序员创建对象、类和实例。在本文中,我们将详细讨论 Python 实例并进行演示...
阅读 6 分钟
Python 是一种流行的语言,提供了许多库和函数,使代码更有效、更简单。与其他编程语言一样,Python 也有一套错误和异常,包括 ImportError、CompileError、KeyError 等。Python 中的 KeyError 是什么?KeyError 是最常见的错误……
7 分钟阅读
介绍 IDLE 代表集成开发和学习环境。轻量级且用户友好的 Python IDLE(集成开发和学习环境)是用于 Python 编程的工具。自版本 1.5.2b1 以来,标准 Python 实现已包含 IDLE,一个集成开发环境。许多 Linux 发行版将其包含在 Python...
阅读 6 分钟
在本教程中,我们将学习如何使用 Python 制作倒计时器。代码将使用用户输入的倒计时持续时间(以秒为单位)。之后,屏幕上将开始显示一个格式为“分钟:秒”的倒计时。时间……
阅读 2 分钟
函数注解是一些随机表达式,它们与函数一起编写,并在编译时进行评估。它们在运行时不存在,并且这些表达式对 python 没有意义。它们由第三方使用和解释,或者...
阅读 3 分钟
我们很可能在生活中遇到过很多次,我们想知道目录(文件夹)中有多少文件以及有哪些文件。或者,有时我们必须寻找一个文件,我们知道它的名字,但是...
7 分钟阅读
在本教程中,我们将定义如何在 Python 中处理不同的时区。我们还将了解 Python 的本地时区。时区可以被描述为观察标准时间的地理区域。让我们对...做一个简短的介绍。
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India