php怎么停止if,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<$c;$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<$c;$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<$c;$i++){
for ($j=$i+1;$j<$c;$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<$c;$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<$max; $i++){
$count = 0;
$t_arr = array();
for ($j=0; $j<$len; $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);
ADatabaseErrorOccurred这个错误是怎么回事?
错误 A Database Error Occurred的解决办法: index.php中修改error_reporting: if (defined('ENVIRONMENT')) { switch (ENVIRONMENT) { case 'development': error_reporting(0); break; case 'testing': case 'production': error_reporting(0); break; default: exit('The application environment is not set correctly.'); } }
你看过/写过哪些有意思的代码?
都说程序员木讷无趣,今天就借机让大家领略一下什么叫隐藏在代码里的有趣灵魂。
话不多说,follow me!
1.离职彩蛋——会自杀的文件
离职时电脑里的文件带不走,又不想被别人捡漏?不妨给文件下一个“自杀”指令。直白地说就是在Excel文件的VBA里编制一段“自杀”代码,只要有人启用该文件的宏,文件就会神奇的消失,是不是有点奇幻色彩?
这还不是最牛的,更厉害的地方在于你可以为文件设定一个“自杀”期限或者限制一定的“自杀”次数。比如,为了避免影响工作交接,你可以把启动“自杀”的时间设置在交接完成之后,只要有人再打开你的工作簿启用宏,文件就会忠诚的“死去”;设定次数的方式比较适合于炫技场景,例如设定了5次“自杀”机会,你大可以把前5次机会让给别人,事实上无论是谁打开都会发生文件“自杀”事件,而到第6次的时候一定要亲自上阵,向大家展示什么是“天选之子”。
2. 小霸王代码
不知道程序员们有没有玩过小霸王486?据说有人曾在第一次接触到这种“电脑”的时候,怀着无比激动的心情,在它的GBASIC程序下面敲下了自己人生中的第一行代码“what is your name?”即便是一行跑不通的代码,也让人兴奋不已。
3.手机的隐藏代码
买了新手机却忘记了手机序列号?别急,其实除了看手机的包装盒外,直接用手机中“关于手机”也能查到手机序列号。不过今天要说的是大部分手机在出厂之前就被安装了一组神奇的代码,只需要在手机的拨号界面,输入“*#06#”就会出现手机的IMEI码,部分手机可以通过该序列号查询到手机的真伪以及激活保修等信息。不用担心买到假手机了,开森~
4.PHP一行代码的巨大威力
不得不说PHP是“全世界最好的编程语言”,因为你只需要在编辑器里输入书上的示例代码
刷新浏览器的页面就会出现奇迹!
惊不惊喜?服不服气?开不开森?PHP是世界上最好的语言没有错吧,一行代码就输出了这么一大页东西!
5.Python控制程序操纵浏览器
什么?Python才是王道?那就学起来吧!打开IDLE,输入下面的代码:
再按一下回车键,意外之喜!程序竟然可以操纵我的浏览器了!
6.会跳舞的图片
闲来无聊娱乐一下,你可以在浏览器地址栏里输入一段代码,让网页里的图片在屏幕上飞舞起来,有没有很神奇?
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; var DI= document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5+"px"; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5+"px"}R++}tag=setInterval('A()',5 );document.onmousedown=function(){clearInterval(tag);for(i=0; i<DIL; i++){DI[i].style.position="static";}}; void(0)Ps.有时粘贴时浏览器会自动吃掉“javascript:”这几个字符,手动敲上就可以~
7.编辑页面文字
在浏览页面的时候想要复制一段文字,却发现文字不能被编辑?其实方法很简单,按F12快键打开控制台,在控制台里面输入
你就会发现页面中的所有文字都可以编辑了,而且绝大部分网页界面都可以这么用。
8.用PHP代码作画
代码能作画,不到20行PHP代码也可以绘制一个复杂美丽的图像,而你只需要敲出下面这些代码:
看,作品成功出炉了。
9.制作无法关闭的对话框
工作的时候最烦电脑不听指挥,但其实有些也可能是人为恶搞的小把戏,例如在浏览器的地址栏里输入一段神奇的代码,你将得到一个无法关闭的对话框。
10.黑客帝国代码雨效果
将这段代码用记事本保存为一个bat批处理文件,比如yu.bat,按WIN+R打开运行对话框,输入CMD,在CMD里面运行该文件,就会出现黑客帝国代码雨的效果了。
@echo off color 02 :start echo %random% %random% %random% %random% %random% %random% %random% %random% %random% %random% goto start11.“调皮”的光驱
不要在安装有光驱的LINUX电脑运行下列程序,否则打赌你的光驱总是会自动弹开。
12.一行“累死”CPU的代码
看吧,码农的世界丰富多彩,黑夜给了码农黑色的眼睛,我们却用它来寻找代码里的光明……希望这些小代码能激起你学习编程的兴趣哦~
程序员学习交流请添加慕课网官方客服微信:mukewang666回复暗号“前端面试”可进前端交流群回复暗号“Java”可进Java交流群回复暗号“专栏”可进程序员交流群php在线打包?
// 使用 copy()
$r = copy('test/3.html', '3.html');
if ($r) {
echo 'Success';
} else {
echo 'Fail';
}
php中怎么让程序一直运行下去?
public static void main(String[] args) { long begain = System.currentTimeMillis();//开始系统时间 try { Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } long CheckTime = System.currentTimeMillis(); //判断时间 while(true){ System.out.println(CheckTime-begain); try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } CheckTime = System.currentTimeMillis(); if((CheckTime-begain)>=(30*1000)){//判断时候到30秒 System.out.println("30秒后结束"); break; } } }给你的答案希望你能满意