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

做网站在线咨询最优化方法

做网站在线咨询,最优化方法,自己做网站做什么行业靠谱,可以做试卷的网站英语怎么说时间复杂度: 最坏情况下为O(V!),其中V是顶点数 实际运行时间取决于图的拓扑结构 这个实现可以输出有向无环图的所有可能的拓扑排序,并能检测图中是否存在环。 算法思想: 使用回溯法枚举所有可能的拓扑排序 在每一步选择当前入…

  1. 时间复杂度

    • 最坏情况下为O(V!),其中V是顶点数

    • 实际运行时间取决于图的拓扑结构

这个实现可以输出有向无环图的所有可能的拓扑排序,并能检测图中是否存在环。

  1. 算法思想

    • 使用回溯法枚举所有可能的拓扑排序

    • 在每一步选择当前入度为0的顶点,递归处理剩余顶点

    • 回溯时恢复入度和访问状态

  2. 关键数据结构

    • inDegree:记录每个顶点的当前入度

    • visited:标记顶点是否已被访问

    • currentOrder:存储当前正在构建的拓扑排序

    • allOrders:存储所有找到的拓扑排序

  3. 环检测

    如果无法找到任何拓扑排序(allOrders为空),说明图中存在环

 

#include <bits/stdc++.h>
using namespace std;vector<vector<int>> graph;
vector<int> inDegree;
vector<bool> visited;
vector<int> currentOrder;
vector<vector<int>> allOrders;
void allTopSortUtil(int n) {// 标志变量,表示是否找到了一个有效的顶点bool flag = false;for (int u = 0; u < n; u++) {// 选择一个入度为0且未被访问的顶点if (inDegree[u] == 0 && !visited[u]) {// 减少所有邻接顶点的入度for (int v : graph[u]) {inDegree[v]--;}// 将当前顶点加入结果并标记为已访问currentOrder.push_back(u);visited[u] = true;// 递归处理剩余顶点allTopSortUtil(n);// 回溯:重置访问标记和入度visited[u] = false;currentOrder.pop_back();for (int v : graph[u]) {inDegree[v]++;}flag = true;}}// 如果没有顶点可选,说明已经得到一个完整的拓扑排序if (!flag) {if ((int)currentOrder.size() == n) {allOrders.push_back(currentOrder);}}
}vector<vector<int>> allTopSorts(int n) {vector<int> inDegree(n, 0);vector<bool> visited(n, false);// 计算每个顶点的入度for (int u = 0; u < n; u++) {for (int v : graph[u]) {inDegree[v]++;}}allTopSortUtil(n);return allOrders;
}int main() {// 示例:构建一个有向无环图int n = 6;  // 节点数量vector<vector<int>> graph(n);// 添加边graph[5].push_back(2);graph[5].push_back(0);graph[4].push_back(0);graph[4].push_back(1);graph[2].push_back(3);graph[3].push_back(1);// 获取所有可能的拓扑排序vector<vector<int>> allOrders = allTopSorts(n);// 输出结果if (allOrders.empty()) {cout << "图中存在环,无法进行拓扑排序!" << endl;} else {cout << "所有可能的拓扑排序:" << endl;for (auto& order : allOrders) {for (int node : order) {cout << node << " ";}cout << endl;}cout << "共找到 " << allOrders.size() << " 种拓扑排序" << endl;}return 0;
}

http://www.dtcms.com/wzjs/171333.html

相关文章:

  • 宁波做网站哪家公司好怎么建立网站平台
  • 模板网站建设教程视频爱站工具包手机版
  • 做网站推广有效果吗百度长尾关键词挖掘工具
  • magento网站维护哪里有软件培训班
  • 加强志鉴网站建设正规电商培训学校排名
  • 红安县城乡建设局官方网站长沙排名推广
  • 网站建设色系搭配百度搜索引擎入口官网
  • 内外外贸购物网站建设现在做百度推广有用吗
  • 食品网站模板下载代码优化
  • 做网站干嘛nba最新排名东西部
  • 做网站需要几个岗位广州网站优化方案
  • 网站开发待遇如何网站建设方案推广
  • 网站优化 情况会员营销
  • 网站开发能赚钱吗如何在百度上发表文章
  • 海口网站建设服务公司营销的三个基本概念是什么
  • 苏州找工作网站有哪些地推接单网
  • 金华企业网站推广临沂seo公司稳健火星
  • 网站顶部广告代码怎么用模板做网站
  • 阿里云服务器报价武汉关键词seo排名
  • 网站关键词密度过高企业品牌类网站有哪些
  • 洋桥网站建设公司易推客app拉新平台
  • 一站式建站价格sem投放是什么意思
  • 网络科技公司可以去吗seo关键词优化培训
  • 网站建设与网页设计试卷上海网站营销seo方案
  • 手机端网站开发流程seo企业培训班
  • wordpress同步到今日头条百度代做seo排名
  • 网站建设企业营销市场调研表模板
  • 怎么做免费的网站空间首码项目推广平台
  • 南宁网站建设公司seo优化阿里云域名注册网站
  • 西安网站手机网站建设百度文库官网