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

怎么做自己的视频网站/百度电脑版下载官网

怎么做自己的视频网站,百度电脑版下载官网,app和小程序的开发成本,用html5做的网站一、深度优先搜索(DFS) 原理: 沿着分支尽可能深入,直到到达叶子节点,然后回溯探索其他分支 类似走迷宫时优先选择一条路走到黑,碰壁再回退 数据结构:栈(Stack)或递归实…

一、深度优先搜索(DFS)

原理

  • 沿着分支尽可能深入,直到到达叶子节点,然后回溯探索其他分支

  • 类似走迷宫时优先选择一条路走到黑,碰壁再回退

  • 数据结构:栈(Stack)或递归实现

  • 时间复杂度:O(V+E)(顶点数+边数)

  • // 递归实现(推荐)
    public void DFS(Node node, HashSet<Node> visited)
    {if (node == null || visited.Contains(node)) return;visited.Add(node);Console.Write(node.Value + " "); // 处理当前节点foreach (var neighbor in node.Neighbors){DFS(neighbor, visited); // 递归访问相邻节点}
    }// 栈实现
    public void DFS_Stack(Node root)
    {var stack = new Stack<Node>();var visited = new HashSet<Node>();stack.Push(root);while (stack.Count > 0){var current = stack.Pop();if (visited.Contains(current)) continue;visited.Add(current);Console.Write(current.Value + " ");// 注意:邻接节点要反向入栈(保持顺序)foreach (var neighbor in current.Neighbors.Reverse()){stack.Push(neighbor);}}
    }

    二、广度优先搜索(BFS)

    原理

  • 逐层向外扩展搜索,先访问离起点最近的节点

  • 类似水波纹扩散的效果

  • 数据结构:队列(Queue)

  • 时间复杂度:O(V+E)

  • public void BFS(Node root)
    {var queue = new Queue<Node>();var visited = new HashSet<Node>();queue.Enqueue(root);while (queue.Count > 0){var current = queue.Dequeue();if (visited.Contains(current)) continue;visited.Add(current);Console.Write(current.Value + " ");foreach (var neighbor in current.Neighbors){queue.Enqueue(neighbor);}}
    }

    三、核心区别对比

    特性深度优先搜索(DFS)广度优先搜索(BFS)
    数据结构栈/递归队列
    空间复杂度O(h)(树高)O(w)(最大宽度)
    适用场景拓扑排序、连通性检测最短路径、层级遍历
    解的性质不一定最短路径保证找到最短路径(无权图)
    内存消耗通常较小可能较大(存储层级节点)

 DFS 应用:

// 深度优先生成迷宫
private void GenerateMaze(int x, int y)
{var current = Cells[x, y];current.Visited = true;var directions = GetRandomDirections(); // 随机方向foreach (var dir in directions){// 递归深入相邻单元格if (CanMove(x, y, dir))GenerateMaze(newX, newY);}
}

 BFS 应用(路径查找优化):

// 广度优先查找最短路径
public List<Point> FindShortestPath(MazeCell start, MazeCell end)
{var queue = new Queue<MazeCell>();var visited = new HashSet<MazeCell>();var parentMap = new Dictionary<MazeCell, MazeCell>();queue.Enqueue(start);while (queue.Count > 0){var current = queue.Dequeue();if (current == end) break;foreach (var neighbor in GetAccessibleNeighbors(current)){if (!visited.Contains(neighbor)){parentMap[neighbor] = current;queue.Enqueue(neighbor);visited.Add(neighbor);}}}return ReconstructPath(parentMap, end);
}

五、选择依据
需要最短路径 → 选BFS(如迷宫求解)

内存敏感/深度优先特性 → 选DFS(如迷宫生成)

层级关系分析 → 选BFS(如社交网络层级分析)

存在性验证 → 两者均可(如节点是否可达)

两种算法在您的迷宫项目中可以配合使用:DFS生成随机迷宫,BFS寻找最优路径,这正是大多数迷宫算法的经典实现方式。

http://www.whsansanxincailiao.cn/news/32040750.html

相关文章:

  • 做娱乐网站少10个页面/第三方关键词优化排名
  • 建设企业网站服务/seo公司的选上海百首网络
  • 什么网站教做美食/线上营销怎么做
  • 赤峰市做网站建设的公司/营销网络
  • 静态旅游网站开发论文/网络营销的主要传播渠道是
  • 做分析图的地图网站/企业培训课程视频
  • wordpress建站怎么学/seo实战培训学校
  • 做网站需要会哪些编程语言/大数据营销的案例
  • wordpress网站背景/推广赚钱平台有哪些
  • 网站建设 图片问题/惠州网站排名提升
  • 做搜狗pc网站优/谷歌seo怎么做
  • 微小店网站建设平台/百度seo关键词点击软件
  • 甲级设计院加盟分公司/班级优化大师免费下载电脑版
  • 潍坊高端网站开发/百度公司推广电话
  • 个人建网站一般多少钱/重庆网站seo搜索引擎优化
  • 承接政府网站建设/全国最好网络优化公司
  • b2c网站推广方案/2022磁力链接搜索引擎推荐
  • 南昌旅游集团网站建设/百度贴吧官网网页
  • 大连做网站比较好的公司/活动软文怎么写
  • 网站开发维护专员岗位职责/公司网站设计制作
  • 建筑公司发展规划/网站seo优化技巧
  • wordpress文章点赞/太原自动seo
  • 专业风水网站建设/如何做好产品网络推广
  • 网站建设适合什么单位/软文推广收费
  • 湖南省人民政府网站是谁做的/chrome 谷歌浏览器
  • 供应链管理专业/seo的优化技巧有哪些
  • 做网站的过程/seo和点击付费的区别
  • 做基金哪个网站好/网站收录情况查询
  • 虚拟机可以做两个网站/3seo
  • 高端网站建设 企业网站建站/成都网站设计