当前位置: 首页 > news >正文

杭州高瑞网站建设/网络营销服务企业有哪些

杭州高瑞网站建设,网络营销服务企业有哪些,网站要怎么做的吗,邢台网站建设方法一:拓扑排序时间复杂度O(n^2)比较常用的是用拓扑排序来判断有向图中是否存在环。什么是拓扑排序呢?我们先定义一条u到v的边e,u生成拓扑序列的算法就叫拓扑排序啦~算法流程描述while(节点个数次(N)循环)1.找出入度为0的节点u(节点个数次(N)循环)2.删去…

方法一:拓扑排序

时间复杂度O(n^2)

比较常用的是用拓扑排序来判断有向图中是否存在环。

什么是拓扑排序呢?

我们先定义一条u到v的边e=,u

生成拓扑序列的算法就叫拓扑排序啦~

算法流程描述

while(节点个数次(N)循环)

1.找出入度为0的节点u(节点个数次(N)循环)

2.删去这个节点u和从这个节点出发相连的边(,....,),更新这些边连的点(v1,v2,v3....vn)的入度信息。

3.直到找不到入度为0的点(要是图里节点删完了(循环了N次)就是没环,还剩节点就有环)。

代码

#include

#include

using namespace std;

#define MAXN 1000

int n, m;

vector G[MAXN];

vector topo;//存拓扑排序的序列

void read_graph()

{

cin >> n >> m;;

int u, v;//不带边权的图

for (int e = 0; e < m; e++) {//有多少条边

cin >> u >> v;

G[u].push_back(v);//有向图

}

}

bool topoSort()

{

int indgree[MAXN] = { 0 };//入度信息

int visit[MAXN] = { 0 };

for (int i = 0; i < n; i++) {//初始化入度信息

for (int j = 0; j < G[i].size(); j++) {

indgree[G[i][j]]++;

}

}

int control=0;

while (control < n) {

int u = 0,i;

//找到入度为0的点

for (i=0; i < n; i++) {

if (!visit[i] && indgree[i] == 0) {

u = i;

break;

}

}

if (i == n) {//找不到入度为0的点退出循环

return false;

}

visit[u] = 1;//标记访问过

topo.push_back(u);

for (int j = 0; j < G[u].size(); j++) {//更新入度信息

indgree[G[u][j]]--;

}

control++;

}

return true;//control=n 说明n个点都存入拓扑排序里,是无环的

}

int main()

{

read_graph();

for (int i = 0; i < n; i++) {

cout << i<

for (int j = 0; j < G[i].size(); j++) {

cout << G[i][j] << " ";

}

cout << endl;

}

if (topoSort()) {

for (int i = 0; i < topo.size(); i++) {

cout << topo[i] << " ";

}

}

else {

cout << "there exist circle" << endl;

}

}

上面这个复杂度要O(n^2)

看到用栈可以简化到O(n+e); //链接

其实就是在找入度为0点的步骤那里做优化:

把入度为0的点入栈;

当栈不为空时,更新栈顶节点连接顶点的入度信息,如果为0入栈

个人理解:和BFS的模板格式有点像,一层一层的搜索,这里用栈替代了上面代码的visit数组,因为只对栈里的元素做操作,自然是未访问过的

DFS

时间复杂度O(V+E)

用两个bool数组visited[]和recStack[]来记录对节点 的访问和入栈

- isCyclicUnit(int v) ----以v起点是否有环

- isCycle(int n) ----遍历n 个节点,调用isCyclicUnit(i)

http://www.jmfq.cn/news/5053213.html

相关文章:

  • 大华建设项目管理有限公司网站/下载优化大师并安装
  • 兰州官网seo分析/快排seo软件
  • 做网站购买服务器/网络营销工作内容
  • 金华市金东区建设局网站/百度写一篇文章多少钱
  • 竞价单页网站制作/seo论坛站长交流
  • 山东省济南市莱芜区/seo和sem的区别
  • 中国建设银行的网站./百度一下官网搜索引擎
  • 可以做商城网站的公司/新冠疫情最新数据
  • 法治建设网站模块名称/百度文库网页版
  • 网站建设制作经验足/百度手机app
  • 国企单位网站建设方案/seo推广外包
  • 商务网站建设哪家好/永久观看不收费的直播
  • 电脑建网站软件/搜外滴滴友链
  • 网站模板好/公众号推广费用一般多少
  • 绵阳专门做网站的公司有哪些/北京seo排名优化网站
  • 网站建设模板怎么设计/seo优化顾问服务
  • 仿站源码/营销方案推广
  • 宁波seo服务快速推广/免费seo教程
  • asp网站连接数据库/郑州网站
  • 怎么用域名建网站/百度推广用户注册
  • 密云做网站/写一篇软文多少钱
  • asp源码下载网站/搜索网站排名优化
  • 禅城网站建设公司/竞价销售是什么意思
  • 网页版面布局/seo优化的作用
  • 东莞网站设计与网站制作/如何去除痘痘有效果
  • 福田瑞沃大金刚/seo学习
  • 海门网站建设制作/网站推广的基本方法是
  • 网站收缩栏/百度热搜榜历史
  • 用开源吗做的网站可以用吗/网络营销的六个特点
  • 做网站不给源码程序/seo服务公司上海