zoukankan      html  css  js  c++  java
  • 图03--[AOV网&&最小生成树&&Prim算法&&Kruskal算法]

    1.AVO网

    1.1基本概念

     1.2拓扑排序

     1.3拓扑排序思路

     1.4拓扑排序思路

    卡恩算法因为删掉原数据 所以需要对卡恩算法进行一定的优化

     

     1.5作业

    2.生成树

    2.1基本概念

     2.2最小生成树

     

     2.3切分定理

    2.4Prim算法--执行过程

     

     

    2.5prim算法实现

     

    private Set<EdgeInfo<V, E>> prim() {
            Iterator<Vertex<V, E>> it = vertices.values().iterator();
            if (!it.hasNext()) return null;
            Vertex<V, E> vertex = it.next();
            Set<EdgeInfo<V, E>> edgeInfos = new HashSet<>();
            Set<Vertex<V, E>> addedVertices = new HashSet<>();
            addedVertices.add(vertex);
            MinHeap<Edge<V, E>> heap = new MinHeap<>(vertex.outEdges, edgeComparator);
            int verticesSize = vertices.size();
            while (!heap.isEmpty() && addedVertices.size() < verticesSize) {
                Edge<V, E> edge = heap.remove();
                if (addedVertices.contains(edge.to)) continue;
                edgeInfos.add(edge.info());
                addedVertices.add(edge.to);
                heap.addAll(edge.to.outEdges);
            }
            return edgeInfos;
        }
    View Code

    2.6Kruskal算法--执行过程

     

     

     2.7Kruskal算法--实现

    private Set<EdgeInfo<V, E>> kruskal() {
            int edgeSize = vertices.size() - 1;
            if (edgeSize == -1) return null;
            Set<EdgeInfo<V, E>> edgeInfos = new HashSet<>();
            MinHeap<Edge<V, E>> heap = new MinHeap<>(edges, edgeComparator);
            UnionFind<Vertex<V, E>> uf = new UnionFind<>();
            vertices.forEach((V v, Vertex<V, E> vertex) -> {
                uf.makeSet(vertex);
            });
            while (!heap.isEmpty() && edgeInfos.size() < edgeSize) {
                Edge<V, E> edge = heap.remove(); 
                if (uf.isSame(edge.from, edge.to)) continue; 
                edgeInfos.add(edge.info());
                uf.union(edge.from, edge.to);
            }
            return edgeInfos;
        }
    View Code
  • 相关阅读:
    JMeter参数化取中文乱码解决
    Jmeter返回结果乱码问题解决
    JMeter工具元件介绍及接口测试流程
    Jmeter中mqtt插件使用简介
    pip安装paho.mqtt库
    测试计划、方案模板
    测试策略VS测试计划、测试方案
    LoadRunner11脚本小技能之同步/异步接口分离+批量替换请求头
    docker-io安装报错
    一文讲懂服务的优雅重启和更新
  • 原文地址:https://www.cnblogs.com/ggnbnb/p/12610967.html
Copyright © 2011-2022 走看看