PHP复杂度,php 常用算法和时间复杂度

按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)

复制代码 代码如下:

//二分查找O(log2n)

function erfen($a,$l,$h,$f){

if($l >$h){ return false;}

$m = intval(($l+$h)/2);

if ($a[$m] == $f){

return $m;

}elseif ($f < $a[$m]){

return erfen($a, $l, $m-1, $f);

}else{

return erfen($a, $m+1, $h, $f);

}

}

$a = array(1,12,23,67,88,100);

var_dump(erfen($a,0,5,1));

//遍历树O(log2n)

function bianli($p){

$a = array();

foreach (glob($p.'/*') as $f){

if(is_dir($f)){

$a = array_merge($a,bianli($f));

}else{

$a[] = $f;

}

}

return $a;

}

//阶乘O(log2n)

function jc($n){

if($n<=1){

return 1;

}else{

return $n*jc($n-1);

}

}

//快速查找  O(n *log2(n))

function kuaisu($a){

$c = count($a);

if($c <= 1){return $a;}

$l = $r = array();

for ($i=1;$i        if($a[$i] < $a[0]){

$l[] = $a[$i];

}else{

$r[] = $a[$i];

}

}

$l = kuaisu($l);

$r = kuaisu($r);

return array_merge($l,array($a[0]),$r);

}

//插入排序  O(N*N)

function charu($a){

$c = count($a);

for($i=1;$i      $t = $a[$i];

for($j=$i;$j>0 && $a[$j-1]>$t;$j--){

$a[$j] = $a[$j-1];

}

$a[$j] = $t;

}

return $a;

}

//选择排序O(N*N)

function xuanze($a){

$c = count($a);

for($i=0;$i        for ($j=$i+1;$j            if($a[$i]>$a[$j]){

$t = $a[$j];

$a[$j] = $a[$i];

$a[$i] = $t;

}

}

}

return $a;

}

//冒泡排序   O(N*N)

function maopao($a){

$c = count($a);

for($i=0;$i        for ($j=$c-1;$j>$i;$j--){

if($a[$j] < $a[$j-1]){

$t = $a[$j-1];

$a[$j-1] = $a[$j];

$a[$j] = $t;

}

}

}

return $a;

}

复制代码 代码如下:

/**

* 排列组合

* 采用二进制方法进行组合的选择,如表示5选3时,只需有3位为1就可以了,所以可得到的组合是 01101 11100 00111 10011 01110等10种组合

*

* @param 需要排列的数组 $arr

* @param 最小个数 $min_size

* @return 满足条件的新数组组合

*/

function plzh($arr,$size=5) {

$len = count($arr);

$max = pow(2,$len);

$min = pow(2,$size)-1;

$r_arr = array();

for ($i=$min; $i   $count = 0;

$t_arr = array();

for ($j=0; $j    $a = pow(2, $j);

$t = $i&$a;

if($t == $a){

$t_arr[] = $arr[$j];

$count++;

}

}

if($count == $size){

$r_arr[] = $t_arr;

}

}

return $r_arr;

}

$pl = pl(array(1,2,3,4,5,6,7),5);

var_dump($pl);

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

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

相关文章

ubuntu11.10 源码编译安装php5.3.8,Ubuntu 11.10编译安装Nginx、PHP 5.3.8、MySQL、MongoDB、Memcached、SSL、SMTP...

手动安装php mongo扩展sudo apt-get install autoconfwget http://pecl.php.net/get/mongo-1.2.6.tgztar -zxvf mongo-1.2.6.tgzcd mongo-1.2.6/usr/local/php/bin/phpize./configure --with-php-config/usr/local/php/bin/php-configmakesudo make installecho extension mon…

php中常用的全局变量有,在PHP中如何使用全局变量的方法详解

但是你可以使用你自己的全局变量。使用关键字“global”你就可以把全局数据导入到一个函数的局部范围内。如果你不明白“变量使用范围”&#xff0c;请你自己参考PHP手册上的相关说明。下面是一个使用“global”关键字的演示例子&#xff1a;代码如下:正如你在上面的例子中看到…

java实现图像处理高通滤波,图像处理入门——滤波 - leo_de_macondo的个人页面 - OSCHINA - 中文开源技术交流社区...

模糊图像模糊的方法可以将每个像素的rgb值用周围像素的加权平均值来代替。比如用周围的9个像素来计算加权平均值&#xff0c;权值可以用一个3x3的矩阵来表示&#xff1a;| 1 2 1 || 2 4 2 | * (1/16)| 1 2 1 |中间的像素是要处理的像素&#xff0c;越靠近中间权…

java激光图,java-OpenCV Android跟踪激光点

我正在尝试在Android设备上使用OpenCV跟踪激光点.我想使用此激光点在我的cameraview上的画布上绘制.我已经将我的camerapreview转换为HSV色彩空间,并使用阈值过滤(仅在H和V通道上)来分离我的Laserdot.这相当健壮.public Mat onCameraFrame(CvCameraViewFrame cvf) {// Grab the…

matlab数据接口技术,matlab接口技术与应用

matlab接口技术与应用来源&#xff1a;mamingkeda作者&#xff1a;华仔浏览&#xff1a;1070时间&#xff1a;2016-08-10 14:18标签&#xff1a;摘要&#xff1a;matlab接口技术与应用应用程序接口的使用方法。全书分为10章&#xff0c;第1章是matlab环境和编程语言的概述&…

php iframe 上传文件,php+iframe 实现上传文件功能示例

本文实例讲述了phpiframe 实现上传文件功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;我们通过动态的创建iframe&#xff0c;修改form的target&#xff0c;来实现无跳转的文件上传。具体的实现步骤1.捕捉表单提交事件2.创建一个iframe3.修改表单的target,指向ifr…

break是python合法标识符,Python笔记——break的注意事项

ajax状态ajax的几个状态 Uninitialized 初始化状态.XMLHttpRequest 对象已创建或已被 abort() 方法重置. Open open() 方法已调用,但是 send() 方法未调 ...使用Npoi向Excel中插入图片先把数据库中的数据都导入到Excel表格中,把图片地址的路径全部转成绝对路径. 使用Npoi读取刚…

bulk Java提交数据,性能优化 – bulk提交 - ELK Stack 中文指南

在 CRUD 章节&#xff0c;我们已经知道 ES 的数据写入是如何操作的了。喜欢自己动手的读者可能已经迫不及待的自己写了程序开始往 ES 里写数据做测试。这时候大家会发现&#xff1a;程序的运行速度非常一般&#xff0c;即使 ES 服务运行在本机&#xff0c;一秒钟大概也就能写入…

catalog java,Java Connection getCatalog()方法与示例

通常&#xff0c;目录是一个目录&#xff0c;其中包含有关数据集&#xff0c;文件或数据库的信息。而数据库目录中包含所有数据库&#xff0c;基本表&#xff0c;视图(虚拟表)&#xff0c;同义词&#xff0c;值范围&#xff0c;索引&#xff0c;用户和用户组的列表。Connection…

matlab 函数 命名参数,如何处理MATLAB中的函数参数的名称/值对

我喜欢使用结构为我的选择。这给你一个简单的方法来存储选项和一个简单的方法来定义它们。此外&#xff0c;整个事情变得相当紧凑。function example(varargin)%# define defaults at the beginning of the code so that you do not need to%# scroll way down in case you wan…

ssrf 过滤.php,SSRF技巧之如何绕过filter_var( )

0x00 前言前几天我读了两篇非常棒的论文&#xff1a;第一篇是发表在blackhat.com上的“A New Era of SSRF ”&#xff0c;讲述的是不同编程语言的SSRF问题&#xff1b;第二篇是由Positive Technology发表的一篇名为“PHP Wrapper” 的论文&#xff0c;它主要讲述的是如何以多种…

matlab 爬虫 例子,认识爬虫(示例代码)

爬虫分为两种&#xff1a;1.通用爬虫。2.聚焦爬虫。通用爬虫&#xff1a;搜索引擎用的爬虫系统。一.目标&#xff1a;爬取所有网站的网页下载下来&#xff0c;存放到本地服务器里形成备份。二.抓取流程&#xff1a;a.首选选取一部分已有的url,把这些url放到待爬取队列。b.从队列…

如何用notepad写php,notepad新手怎么使用

新手使用notepad的几个小技巧&#xff1a;一、软件始终置于屏幕最前方有时候我们在运行程序时&#xff0c;需要将notepad放置到屏幕最前方&#xff0c;此时只需要在工具栏中点击&#xff1a;view——always on tops&#xff1b;此时notepad就会一直处于屏幕最前方。注&#xff…

rman打开oracle归档日志,Oracle RAC中使用RMAN管理归档日志

RMAN归档配置的两种方案1.在Oracle asm和集群文件系统时的归档方案对于Oracle RAC来说首选是使用Oracle asm作为reocvery区域。可选择的你也可以使用集群文件系统的归档方案。如果你使用了一种集群文件系统&#xff0c;那么当进行日志归档时每个节点会将归档日志写到集群文件系…

oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库

oracle --10g 中Duplicate 复制数据库本次实验通过duplicate命令&#xff0c;在本机环境中创建一个复制数据库。目标数据库为hongye、复制数据库为catdb。环境别名设置&#xff1a;alias sqlrlwrap sqlplus /nologalias rmanrlwrap rmanalias dbscd $ORACLE_HOME/dbsalias rdbc…

oracle resize什么意思,Oracle调整表空间大小resize

SQL> ALTER DATABASE DATAFILE D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA RESIZE 300m;ALTER DATABASE DATAFILE D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA RESIZE 300m*ERROR 位于第 1 行:ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据但是SQL>select d.filename,d.fi…

双网卡主机配置oracle监听,VirtualBox设置双网卡实现虚机上网及主宿机互访

VirtualBox 虚拟机之间互连、主宿机互连、以及主宿机连接互联网的功能非常实用。下面介绍实现主宿机通过虚拟网卡互连方式。1 全局配置VirtualBox安装完成后&#xff0c;会在系统中装一块虚拟网卡&#xff0c;我们在 管理> 全局设定中可以看到。这块网卡是在 Host-Only 连接…

oracle英文日期转换为中文,excel中文日期与英文日期如何转换

一、一般的转换方法假如A列为英文日期格式&#xff0c;譬如是&#xff1a;A1 19-Jul-12A2 20-Jul-12A3 21-Jul-12A4 22-Jul-12那么&#xff0c;如果你想将其转换为中文的日期&#xff0c;假如放在B列&#xff0c;首先你得将B列设置为中文的日期格式&#xff0c;方法是&…

oracle笔试题目及答案,Oracle 笔试题目带答案.doc

( )程序包用于读写操作系统文本文件。(选一项)A、Dbms_outputB、Dbms_lobC、Dbms_randomD、Utl_file( )触发器允许触发操作的语句访问行的列值。(选一项)A、行级B、语句级C、模式D、数据库级( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项)A、控制文件…

php sphinx api调用,php调用Sphinx

1.将文件 coreseek-3.2.14/testpack/api/sphinxapi.php 拷贝到任意可被php程序包含出。2.在要调用的脚本中包含文件 sphinxapi.php 如下示例namespace Admin\Controller;use Admin\Common\Controller\CommonController;require(./Public/api/sphinxapi.php); //包含sphinxclass…