zoukankan      html  css  js  c++  java
  • 1,完全,每个点都有直接的连,n个定点和无向图n(n-1)/2,有向图n(n-1)

    2,回路或环:回到开始的点,简单的回路或环:除了第一个,其他不重复

    3,连通图,连通分量:任意两点都可以连通的,连通分量:子图的任意两点是连通的

    4,深度遍历:辅助空间visit[i],表示有没有访问过,时间复杂度,连接矩阵O(n的平分),O(n+e) 

    void dfs(图 g,第几个顶点 v){
        输出v
        visit[i]=true
        for (遍历这个点的邻接点,检查visit[i],
            递归

    5,广度遍历:和上面一样,不过递归方法不同,不在第一个递归下去,横向循环,用个队列保存输出过的点,等下递归,时间复杂度:O(n^2)或O(n+e)

    6,图最小生成树,普里姆算法:先搞一个最小的,从最小里面挑一个,后面加上的可以不断刷新最小距离,o(n2)

      克鲁斯卡尔算法:从边入手,每次找最小边,当作很多连通分量,练成最后一个连通分量

    7,连接各个点,·迪杰斯特拉算法,选择最小的边开始,然后不断刷新,和上面普里姆有点相似,不过他的刷新的累加,和起点相关,时间复杂度O(n2)

    8,每两个点的最短,上面的迪卡斯特拉是一个到其他,怕是在外面加一层循环

    9,拓扑排序,循环删除没有前驱的任务

  • 相关阅读:
    js正则表达式中的问号使用技巧总结
    380. Insert Delete GetRandom O(1)
    34. Find First and Last Position of Element in Sorted Array
    162. Find Peak Element
    220. Contains Duplicate III
    269. Alien Dictionary
    18. 4Sum
    15. 3Sum
    224. Basic Calculator
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/vhyc/p/9464892.html
Copyright © 2011-2022 走看看