树 在介绍对排序之前,先介绍“树”的相关概念!树:指不包含回路的连通无向图。有以下一些特性: 一棵树中的任意两个节点有且仅有唯一的一条路径连通;...
在讲Bellman-Ford之前先介绍另一种存储图的方法:邻接表。 邻接表 先上数据,以下是一个包含4个顶点,5条边的图。n = 4(顶点编号为...
Dijkstra“单源最短路”,是指指定一个点(源点)到其余各个顶点的最短路径。例如:求下图中的1号顶点到其他顶点的最短路径。 与上文中的Flo...
Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离。如下图,表示一个用邻接矩阵表示的图,如何求任意两点之间的距离...
图 图就是由一些小圆点(称为顶点)和连接这些小圆点的直线(称为边)组成的。下图是一个常见的图。 如何存储一个图呢。我们可以用一个二维数组表示,如...
深度优先搜索 深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图。在深度优先搜索中,对于最新发现的顶点,如果它还有以此为起点而未探测到的边,就沿...
队列 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入...
快速排序 快速排序的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边...
冒泡排序 冒泡排序的基本思想是:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。冒泡排序的核心部分是双重嵌套循环,时间复杂度是O(n...
文集作者