知识大全 php 常用算法和时间复杂度

Posted

篇首语:提兵百万西湖上,立马吴山第一峰!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php 常用算法和时间复杂度相关的知识,希望对你有一定的参考价值。

本篇文章是对php中的常用算法以及时间复杂度进行了详细的分析介绍 需要的朋友参考下  

  按数量级递增排列 常见的时间复杂度有 常数阶O( ) 对数阶O(log n) 线性阶O(n) 线性对数阶O(nlog n) 平方阶O(n ) 立方阶O(n )

复制代码 代码如下: //二分查找O(log n) function erfen($a $l $h $f) if($l >$h) return false; $m = intval(($l+$h)/ ); if ($a[$m] == $f) return $m; elseif ($f < $a[$m]) return erfen($a $l $m $f); else return erfen($a $m+ $h $f); $a = array( ); var_dump(erfen($a )); //遍历树O(log n) 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(log n) function jc($n) if($n<= ) return ; else return $n*jc($n ); //快速查找 O(n *log (n)) function kuaisu($a) $c = count($a); if($c <= )return $a; $l = $r = array(); for ($i= ;$i<$c;$i++) if($a[$i] < $a[ ]) $l[] = $a[$i]; else $r[] = $a[$i]; $l = kuaisu($l); $r = kuaisu($r); return array_merge($l array($a[ ]) $r); //插入排序 O(N*N) function charu($a) $c = count($a); for($i= ;$i<$c;$i++) $t = $a[$i]; for($j=$i;$j> && $a[$j ]>$t;$j ) $a[$j] = $a[$j ]; $a[$j] = $t; return $a; //选择排序O(N*N) function xuanze($a) $c = count($a); for($i= ;$i<$c;$i++) for ($j=$i+ ;$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= ;$i<$c;$i++) for ($j=$c ;$j>$i;$j ) if($a[$j] < $a[$j ]) $t = $a[$j ]; $a[$j ] = $a[$j]; $a[$j] = $t; return $a; 复制代码 代码如下: cha138/Article/program/PHP/201311/21271

相关参考