php mysql搜索算法_PHP实现深度优先搜索算法(DFS,Depth First Search)详解
本文实例讲述了PHP实现深度优先搜索算法。分享给大家供大家参考,具体如下:
深度优先搜索的实现原理:
实现代码:
class Search_Method
{
//无向图的数组描述
private $dfs_save;
//全局记录数组
private $arr;
//控制分支-
private $k = 0;
public function __construct()
{
$this->dfs_save = array(
array(0,1,1,1,0,0,0,0,0),
array(1,0,0,0,1,0,0,0,0),
array(1,0,0,0,0,1,0,0,0),
array(1,0,0,0,0,0,1,0,0),
array(0,1,0,0,0,1,0,0,1),
array(0,0,1,0,1,0,0,1,0),
array(0,0,0,1,0,0,0,0,0),
array(0,0,0,0,0,1,0,0,0),
array(0,0,0,0,1,0,0,0,0),
);
$this->arr = array();
}
//深度优先搜索的递归实现方法
public function dfs($v)
{
//对顶点做一些操作
echo str_repeat("-",$this->k);
echo 'V'.($v+1).'
';
//记录已访问的顶点
$this->arr[]= $v;
//查找与顶点相连接的顶点,如果存在就继续深度优先搜索
for($i=0;$i<9;$i++)
{
if(!in_array($i,$this->arr)&&$this->dfs_save[$v][$i]==1)
{
$this->k++;
$this->dfs($i);
}
}
$this->k--;
return;
}
}
?>
实现输出结果:
V1
-V2
--V5
---V6
----V3
----V8
---V9
-V4
--V7
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
php mysql搜索算法_PHP实现深度优先搜索算法(DFS,Depth First Search)详解相关推荐
- 数据结构与算法(python):广度优先搜索(Breadth First Search,BFS)和深度优先算法(Depth First Search,DFS)
参考自 MOOC数据结构与算法Python版 目录 一.广度优先搜索 1.1 BFS算法过程 1.2 广度优先搜索算法分析 二.深度优先搜索 2.1 骑士周游 2.1.1 问题定义 2.1.2 构建骑 ...
- 图的深度优先遍历(Depth First Search)
图的深度优先遍历(Depth First Search) 基本思想 类似于二叉树的先序遍历 假设图中所有结点均未被访问,从初始结点访问,访问其第一个邻接结点,接着以被访问的邻接结点作为初始结点,访问它 ...
- mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...
MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...
- 双向搜索算法(基于深度优先搜索算法的优化)
最近在整理搜索算法相关内容,今天来介绍一下双向搜索算法 传统的深度优先算法,通过不断寻找子状态和回溯,来达到遍历所有状态的目的,存在不少缺点. 1. 可能会陷入死循环:如果图中存在环路,深度优先算法可 ...
- mysql的聚合函数综合案例_MySQL常用聚合函数详解
一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...
- mysql 6.5安装_RedHat6.5安装MySQL5.7教程详解
RedHat6.5安装MySQL5.7教程分享,供大家参考,具体内容如下 安装环境:RedHat6.5 第一步:下载 下载MySQL5.7:http://dev.mysql.com/get/Downl ...
- mysql二进制文件复制_MySQL 主从复制:基于二进制文件复制配置详解
##MySQL-主从复制:基于二进制文件复制详解 ###前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作 ...
- mysql 创建删除表_mysql创建删除表的实例详解
表的创建命令需要: 表的名称 字段名称 定义每个字段(类型.长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name ...
- mysql添加两种数据类型_MySQL入门(二) 数据库数据类型详解
序言 今天去健身了,感觉把身体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这里讲清楚了,以后在看到什么数据类型,咱度应该认识,对我来说,最不熟悉的应该就是时间类型这块了.但是通过 ...
最新文章
- 没错,使用 Nacos 踩坑了
- 不用精子就能繁育后代,科学家只用1个卵细胞就培育出健康小鼠,来自上交医学院 | PNAS...
- 紫书搜索 例题7-10 UVA - 11212 Editing a Book 迭代加深搜索 IDA*
- elasticsearch启动错误解决
- 二维数组求平均值(指针的使用)
- 双三次插值图像旋转_4K/8K电视中的超分辨率技术到底是啥?让我来告诉你(二-插值篇)...
- 【华为云技术分享】敏捷开发落地不实际?原因可能在于你的 IDE 工具
- linux python指向python3_linux下切换python2和python3(转)
- 美团面试一道场景设计题
- python闭包函数的必要条件_Python闭包函数
- Vue_(组件)实例属性
- matlab单位采样序列程序,matlab产生pn序列
- css+html实现时间轴
- 服务器创建文件失败是什么意思,网站提示无法创建文件错误解决详情(图文)...
- python画水平线和垂直线横线 纵线
- 苏州地区--校招IT公司
- properties的配置信息出现\u7684\u6570\u636e\u5e93\u914d\u7f6e
- 自制的百度输入法皮肤
- 计算机术语rander是什么意思,Rendering Engine,呈现引擎还是渲染引擎?
- WPF 实现简易北京地铁效果图
热门文章
- 快速切换目录软件推荐——autojump
- Asp.Net 导出数据格式为Excel 数据的9种方案
- load control template file /_controltemplates/taxonomypicker.ascx failed
- 千呼万唤始出来 ===Visual Studio Team System 2008 Team Suite 中文版 Out!!!
- 10-1-Spring Boot综合项目实战-准备工作
- java 的 provider_Java里的Provider是什么?
- java restcontroller_Spring框架:@RestController与@Controller
- python时间戳_Python-强大的模块功能库-No11
- python测量镜头到目标距离_摄像头单目测距原理及实现
- python 开闭原则_Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】