引入在最小生成树的前两个章节中, 我们介绍了并查集以及基于并查集的 Kruskal 算法;不难看出, Kruskal 算法的时间复杂度主要来自于对所有边按权值排序; 假设图中共有 E 条边, 那么 Kruskal 的时间复杂度为 ElogE;因为我们在并查集中使用了路径压缩算法, 其时间复杂度接近 O(1), 所以整个算法的时间复杂度和排序算法相当, 在使用快速排序的情况下, 就是 ElogE;如
题目: 寻宝题目描述在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通起来(注意:这是一个无向图)。给定一张地图,其中包括了所有的岛屿,以及它们之间的距离。以最小化公路建设长度,确保可以链接到所有岛屿;提取关键: 存在一些点, 存在
并查集本质就是一个数组 int[] father;father[i] = j 表示元素 i 属于 集合 j ;" 集合 j " 说明这个集合以元素 j 为根; 只要一个元素 i 沿着 father 数组能往上找到 j , 那么 i 就属于根为 j 的集合;例如 father = {1, 3, 3, 5, 1, 5};我们希望找到 下标0 所属集合的根, father[0] = 1, father[
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号