加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 比较常用算法和时间复杂度

发布时间:2022-07-20 21:39:25 所属栏目:PHP教程 来源:互联网
导读:本篇文章是对php中的常用算法以及时间复杂度进行了详细的分析介绍,需要的朋友参考下 按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3) 复制代码 代码如下: /** * 排列组合 *
  本篇文章是对php中的常用算法以及时间复杂度进行了详细的分析介绍,需要的朋友参考下
 
  按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)

  复制代码 代码如下:
 
  /**
 
  * 排列组合
 
  * 采用二进制方法进行组合的选择,如表示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)。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!