免费的小程序模板网站做网站服务公司

news/2025/10/4 20:04:31/文章来源:
免费的小程序模板网站,做网站服务公司,大连app开发制作,杭州网站推广公司一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是#xff0c;给定一张图#xff0c;一对初始和终止节点#xff0c;找到两节点之间的节点路径。#xff08;代码均是找到两个节点之间的路径#xff09; 广度优先搜索是一层一层搜索#xf…一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是给定一张图一对初始和终止节点找到两节点之间的节点路径。代码均是找到两个节点之间的路径 广度优先搜索是一层一层搜索深度优先搜索是搜到底不能走了在回溯。 无向图 public class Graph { // 无向图private int v; // 顶点的个数private LinkedListInteger adj[]; // 邻接表public Graph(int v) {this.v v;adj new LinkedList[v];for (int i0; iv; i) {adj[i] new LinkedList();}}public void addEdge(int s, int t) { // 无向图一条边存两次adj[s].add(t);adj[t].add(s);} }二、广度优先遍历 一种“地毯式”层层推进的策略搜索 各变量说明 visited数组 记录已经被访问的顶点 避免顶点被重复访问queue表示已访问但未深入的节点(当前边界)prev数组访问节点的前驱 实现思路 准备部分:visited清零prev置-1。queue加入s节点visited s 置true。开始循环queue不为空则取出队头遍历队头的邻接链表中的节点如果节点没访问过将visited中对应位置置true判断其是否为t是则打印路径退出。否则将prev对应位置置为它的前驱。queue中加入它的邻接链表中的节点。 public void bfs(int s, int t) {if (s t) return;boolean[] visited new boolean[v];visited[s]true;QueueInteger queue new LinkedList();queue.add(s);int[] prev new int[v];for (int i 0; i v; i) {prev[i] -1;}while (queue.size() ! 0) {int w queue.poll();for (int i 0; i adj[w].size(); i) {int q adj[w].get(i);if (!visited[q]) {prev[q] w;if (q t) {print(prev, s, t);return;}visited[q] true;queue.add(q);}}} }private void print(int[] prev, int s, int t) { // 递归打印s-t的路径if (prev[t] ! -1 t ! s) {print(prev, s, prev[t]);}System.out.print(t ); }复杂度分析 E 边的个数 V顶点个数 广度的时间复杂度为O(vE)但是连通图E一定大于V所以OE。空间复杂度主要是节点的消耗O(V)。 三 、深度优先遍历 “走迷宫” 回溯算法 实线 遍历 虚线 回退 各变量说明 visited数组 记录已经被访问的顶点 避免顶点被重复访问found表 示已经找到pre表示访问节点的前驱。 具体思路 1. 准备数据和广度类似只不过不需要队列queue而是需要一个found全局变量因为所有的递归函数都是靠它判断是否停止的不是全局的话回溯时这个变量无法更新变量标识found变量置为false。 2. 进入递归 深度优先搜索。先判断found变量true则返回 在判断 sttrue则foundtrue返回。在进入循环遍历s的邻接表对邻接表内的每一个节点调用深度优先搜索。 boolean found false; // 全局变量或者类成员变量public void dfs(int s, int t) { found false; boolean[] visited new boolean[v]; int[] prev new int[v]; for (int i 0; i v; i) {prev[i] -1; } recurDfs(s, t, visited, prev); print(prev, s, t); }private void recurDfs(int w, int t, boolean[] visited, int[] prev) { if (found true) return; visited[w] true; if (w t) {found true;return; } for (int i 0; i adj[w].size(); i) {int q adj[w].get(i);if (!visited[q]) {prev[q] w;recurDfs(q, t, visited, prev);} } }复杂度 图算法的复杂度都跟 边和节点的数量有关。深度优先搜索的时间复杂度 主要访问的是边所以时间复杂度OE。空间复杂度为O(V) 四、思考题 如何找出社交网络种某个用户的三度好友关系 三度友好关系:可将visited数组稍加改造不为0表示已访问同时数字表示几度友好关系。 广度优先搜索中如果后继节点的好友关系是3不把它放入队列中。 深度优先搜索时如果visited数组中是3则不再往下深入递归。 笔记整理来源 王争 数据结构与算法之美

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国最大网站建设商网站生成器怎么做

python绑定项目 官方未提供python的封装绑定,直接调用执行文件 https://github.com/stlukey/whispercpp.py提供了源码和Cpython结合的绑定 https://github.com/zhujun1980/whispercpp_py提供了ctype方式的绑定,需要先make libwhisper.so Pybind11 bi…

dede视频网站宣城市住房和城乡建设局网站首页

关注公号【逆向通信猿】更精彩!!! 1. 构造编码器对象 采用MATLAB内置的comm.LDPCEncoder构造编码器对象,其中使用默认的校验矩阵,信息位长32400比特,码长64800比特,该校验矩阵中除第一行中1的个数为6个外,其余行中1的个数均为7;前12960列中1的个数为8,后32400列构成…

如何备份一个网站广西住建局

1. C/C++ IDE 安装Clion Nova和VsCode 2. 编译器 2.1 g++ 当程序比较小时,安装g++编译器进行编译,常用命令如下: // 安装g++ sudo apt-get install g++ // 默认生成a.out的可执行文件 g++ main.cpp // 生成其他名字的可执行文件 g++ main.cpp -o exe_name2.2 cmake 当…

网站开发一次性费用网站建设公司发展方向及趋势

2020年9月10日,亚马逊通技术服务(北京)有限公司(AWS中国)与毕马威企业咨询(中国)有限公司(毕马威中国)宣布已签署战略合作协议。 双方将充分利用各自的全球品牌影响力和资…

深入解析:PostgreSQL向量检索:pgvector入门指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网贷之家网站建设你访问的网站正在建设

以上问题在编译器中出现可以在编译器中最上面加入: #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端!!!最上端!!!最上端加入!!! 虽…

Allow or block media autoplay in Firefox

https://support.mozilla.org/en-US/kb/block-autoplay

寺庙网站开发文案wordpress免费主题插件下载

前文:最近跟着DataWhale组队学习这一期“Sora原理与技术实战”,本篇博客主要是基于DataWhale成员、厦门大学平潭研究院杨知铮研究员分享的Sora技术原理详解课件内容以及参考网上一些博客资料整理而来(详见文末参考文献)&#xff0…

[WC2018] 即时战略

[WC2018] 即时战略分享一下全局平衡二叉树的做法。 先讲下部分分。 \(n\le 100,T\le 10000\) 从 \(1\) 开始 DFS,对于当前 \(u\),枚举点 \(v\),如果 \(\text{explore}(u,v)\) 不为 \(fa_u\),则 \(v\) 为 \(u\) 子结…

商城网站源码大全微网站建站

怎么解决java导出excel时文件名乱码发布时间:2020-06-19 16:59:00来源:亿速云阅读:137作者:元一java解决导出Excel时文件名乱码的方法示例:String agent request.getHeader("USER-AGENT").toLowerCase();re…

实用指南:Unity学习之C#的反射机制

实用指南:Unity学习之C#的反射机制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

电子政务网站建设参考文献wdcp 网站打不开

一金融机构在近期发生了一起数据泄露事件。 经过调查,发现是由于一名员工将包含客户敏感信息的文件通过电子邮件发送给了未经授权的第三方。 这一事件导致客户数据泄露,给该机构带来了严重的声誉损失和信任危机。 这一案例凸显了数据防泄漏系统的重要性…

网站开发 数据库深圳制作网站

1、背景介绍 重装win10系统,重装Python。在坑出现之前,已经完成了Python的安装(D盘),并且在系统中添加了环境变量。由于平时需要用到Python2.7和Python3.6,这里将对应的解释器分别改名为Python2和Python3。…

HDF5文件 ——之三

H5G、H5L、H5O 是 HDF5 C API 的分组接口,在 HDF.PInvoke.NETStandard(C# 的 HDF5 封装包)里,它们分别代表 HDF5 底层 对象层(Object layer)、组层(Group layer) 和 链接层(Link layer) 的操作模块。🧱 一…

MySQL库的操作(ubuntu) - 教程

MySQL库的操作(ubuntu) - 教程2025-10-04 19:34 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

创业做社交网站有哪些做一个网站 多少钱

1)熟悉之前的SysUser登录流程 过滤器链验证配置 这里security过滤器链增加了前置过滤器链jwtFilter 该过滤器为我们自定义的,每次请求都会经过jwt验证 ok我们按ctrl alt B跳转过去来看下 首先会获取登录用户LoginUser 内部通过header键,获…

代码随想录算法训练营|Day 25

Day 25 第七章 回溯算法 part04 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.递增子序列.html 视频讲解:https://www.bilibili.com/video/B…

深入解析:SAE J3072-2024插电式电动汽车(PEV)中的车载逆变器系统安全标准介绍

深入解析:SAE J3072-2024插电式电动汽车(PEV)中的车载逆变器系统安全标准介绍pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

冷僻模板整理

min25筛 可以低于线性的解决1到N中的质数的k次幂的求和的问题,并且在处理了N之后对于1到N中数论分块所需的点x(l,r)都可以通过val=g[ID(x)]以O(1)的代价获取到 如果不需要多次查询,建议把命名空间外的定义放到m…

参考文献网站开发电商网站平台有哪些功能

1、Lambda表达式 Lambda表达式是Java8的新特性。 组成Lambda表达式的三个要素:形式参数,箭头操作符,代码块 Lambda表达式的格式:(形式参数) -> {代码块} //如:(int a, int b) -> {return a b;}形式参数&…