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

南昌网站seo技术wordpress扒主题代码

南昌网站seo技术,wordpress扒主题代码,网站报价,百度关键词竞价价格查询文章出处#xff1a;极客时间《数据结构和算法之美》-作者#xff1a;王争。该系列文章是本人的学习笔记。 搜索算法 算法是作用于数据结构之上的。深度优先搜索、广度优先搜索是作用于图这种数据结构之上的。图上的搜索算法可以理解为从一个顶点到另外一个顶点。 常用的搜…文章出处极客时间《数据结构和算法之美》-作者王争。该系列文章是本人的学习笔记。 搜索算法 算法是作用于数据结构之上的。深度优先搜索、广度优先搜索是作用于图这种数据结构之上的。图上的搜索算法可以理解为从一个顶点到另外一个顶点。 常用的搜索算法有暴力的深度优先搜索、广度优先搜索还有A*、IDA*等启发式搜索。 实际应用举例 在社交网络中有六度分隔理论就是一个人最多通过六个人可以认识另外一个人。一个用户的一度好友就是他的好友二度好友是他好友的好友以此类推。给你一个关系图你可以找到一个用户的三度好友吗 广度优先搜索(BFS) BFS:先找离起始顶点最近的点然后是次近依次向外搜索。 下面的代码是无向图的BFS代码。 /*** 无向图*/ public class UnDirectedGraph {private int v;//顶点个数private LinkedListInteger adj[];//邻接表public UnDirectedGraph(int v){this.v v;this.adj new LinkedList[v];for(int i0;iv;i){this.adj[i] new LinkedList();}}public void addEdge(int s,int t){this.adj[s].add(t);this.adj[t].add(s);}/*** 广度优先搜索从s节点到t节点:打印从s到t的节点路径* param s* param t*/public void bfs(int s, int t) {if(st){System.out.println(s);return;}QueueInteger queue new LinkedList();queue.offer(s);boolean[] visited new boolean[this.v];visited[s] true;int[] pre new int[v];Arrays.fill(pre,-1);while(!queue.isEmpty()){int size queue.size();for(int i 0;isize;i){//每一层int w queue.poll();for(int j 0;jthis.adj[w].size();j){int q this.adj[w].get(j);if(!visited[q]){pre[q] w;if(qt){printPath(pre,s,t);return;}visited[q]true;queue.offer(q);}}}}}private void printPath(int[] pre,int s,int t) {if(s!t pre[t]!-1){printPath(pre,s,pre[t]);}System.out.print(t\t);} }这里三个重要的临时变量queue、visited、pre。 queue是一个队列存储已经被访问但是邻接点还没有被访问的节点。 visited记录已经访问过的节点防止重复访问。 pre记录从哪个节点可以达到下标所表示的节点。pre[w]记录从哪个节点达到w节点 。 时间复杂度分析BFS中每个节点都会被访问一次入队一次每条边都会被访问一次时间复杂度O(VE)。V表示顶点个数E表示边的个数。 空间复杂度分析临时变量queue、visited、pre的个数都不会超过顶点个数。所以上O(V)。 上面的代码可以抽象出BFS代码的框架。 深度优先搜索(DFS) DFSDFS是从起始顶点开始按照一条路径一直走到终点t或者不能再走下去。然后返回到上一个可选择的状态选择另外一条路径继续走。DFS是一种非常有名的算法思想回溯。 下图中实现代表搜索路径虚线代表回退。 private boolean found false;public void dfs(int s, int t) {boolean[] visited new boolean[this.v];int[] pre new int[v];Arrays.fill(pre,-1);dfs(s,t,visited,pre);printPath(pre,s,t);}private void dfs(int w, int t, boolean[] visited, int[] pre) {if(wt){found true;return;}visited[w] true;if(!found){for(int j 0;jthis.adj[w].size() !found;j){int q this.adj[w].get(j);if(!visited[q]) {pre[q] w;visited[q]true;dfs(q,t,visited,pre);}}}}时间复杂度分析从图中看每条边最多被访问2次一次搜索一次回退。时间复杂度O(E)。 空间复杂度分析消耗内存主要是 visited、prev 数组和递归调用栈。visited、prev 数组和顶点个数相同。递归调用不会超过顶点的个数。所以空间复杂度O(V)。 适用范围 DFS和BFS搜索的空间复杂度都是O(V),当顶点个数很大的时候就不适合这两种算法。 三度好友 上面提到的查找一个人的三度好友适合用BFS。一层一层向外搜索。找到第三层。
http://wiki.neutronadmin.com/news/423117/

相关文章:

  • 温州建设信息网站红酒首页网页设计素材
  • 南充建设机械网站江津网站建设口碑
  • 丹阳网站建设价位安徽招标投标信息网
  • 网站建设项目的摘要江门网络建站模板
  • 做区块链的网站网站可以跟博客做互链吗
  • 网站 404 错误页面是否自动跳转免费的国外代理ip
  • 网站项目验收确认书做公司网站协议书模板下载
  • 李贤威wordpress建站教程一个人看的片免费高清大全
  • 如何在网站上做推广温州网站建设前十公司
  • 网站建设都需要什么工具电子商务网站建设课后作业
  • 手机浏览器网站开发工具厚街网站建设费用
  • 做网站用虚拟机还是服务器WordPress添加2233娘
  • 如何接单做网站微信管理中心
  • 郑州网站建设外包热点链接到另一个网站怎么做
  • 网站建设费计入哪个二级科目做家居网站设计
  • 有什么网站可以做深圳初二的试卷练习tp5 商城网站开发
  • 厦门设计师网站黄山网站优化
  • 金坛网站建设公司官方网站旗舰店
  • 企业网站怎么做seo优化四川省建设厅官方网站
  • 网站的备用金怎么做凭证搭建平台 提供舞台
  • 淄博手机网站建设要学好网站开发要会什么
  • 句容做网站wordpress仿安卓主题下载
  • 网站建设的公司上海wordpress 编辑软件
  • photoshop网站视觉设计步骤网站怎么做网上报名
  • 为什么说做网站赚钱中山移动网站设计
  • 网站建设服务器维护内容想找工作去哪个网站
  • 宁波网站建设lonoo湖南免费网站建设
  • 青岛企业做网站磁县专业做网站
  • 谷歌英文网站优化微信手机网页版
  • 网站建设的费用记什么科目网站下载软件入口