08 2020 档案
摘要:原理 假设有向图G=(V,E)采用邻接矩阵存储。设置一个二维数组A用于存放当前顶点之间的最短路径长度,分量A[i][j]表示当前顶点i → j的最短路径长度。然后,每次添加一个顶点,同时对A的数组进行筛选优化,期间会产生k个A数组。Ak[i][j]数组代表着从考虑0 -> k的i → j 的最小距离
阅读全文
摘要:定义 克鲁斯卡尔(Kruskal)算法过程:构造最小生成树(U,TE) 1. 置U的初值等于V(即包含有G中的全部顶点),TE的初值为空集(即图T中每一个顶点都构成一个连通分量)。 2. 将图G中的边按权值从小到大的顺序依次选取: - 若选取的边未使生成树T形成回路,则加入TE; - 否则舍弃,直到
阅读全文
摘要:生成树 一个连通图的生成树是一个极小连通子图,它含有图中全部n个顶点和构成一棵树的(n-1)条边。 连通图由一次遍历就可以产生生成树 由深度优先遍历得到的生成树称为深度优先生成树。 由广度优先遍历得到的生成树称为广度优先生成树。 一个连通图的生成树不一定是唯一的! 最小生成树 对于带权连通图G (每
阅读全文
摘要:官方原文档 微软官方教程地址:传送门 安装适用于 Linux 的 Windows 子系统 必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。 以管理员身份打开 PowerShell 并运行: dism.exe /online
阅读全文
摘要:定义 深度优先遍历 (1)从图中某个初始顶点v出发,首先访问初始顶点v。 (2)选择一个与顶点v相邻且没被访问过的顶点w,再从w出发进行深度优先搜索,直到图中与当前顶点v邻接的所有顶点都被访问过为止。 (3) 利用递归实现,简单但是不好理解,时间复杂度 O(n+e)。 广度优先遍历 (1)访问初始点
阅读全文
摘要:定义 堆就是完全二叉树的数据结构,堆排序是利用二叉树的孩子与双亲节点的比较来实现的排序方法。 大顶堆:每个节点的值都大于或者等于它的左右子节点的值。 小顶堆:每个节点的值都小于或者等于它的左右子节点的值。 这里使用的是大顶堆。 基本思想 堆排序的基本思想是: 1、将带排序的序列构造成一个大顶堆,根据
阅读全文