国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 邏輯算法 > 正文

php 常用算法和時間復雜度

2020-03-22 17:39:13
字體:
來源:轉載
供稿:網友
按數量級遞增排列,常見的時間復雜度有:常數階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 $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 $i++){
$t = $a[$i];
for($j=$i;$j 0 && $a[$j-1] $j--){
$a[$j] = $a[$j-1];
}
$a[$j] = $t;
}
return $a;
}
//選擇排序O(N*N)
function xuanze($a){
$c = count($a);
for($i=0;$i $i++){
for ($j=$i+1;$j $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 $i++){
for ($j=$c-1;$j $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
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);

PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沾益县| 霍邱县| 五台县| 贡觉县| 青川县| 鹤壁市| 定南县| 板桥市| 寿宁县| 齐齐哈尔市| 嘉定区| 渝中区| 安阳市| 田阳县| 诸城市| 肥西县| 广元市| 阿尔山市| 奎屯市| 疏附县| 惠来县| 锦州市| 临泽县| 岳西县| 积石山| 崇义县| 岳阳市| 德钦县| 肃北| 阿勒泰市| 云林县| 南开区| 民勤县| 塘沽区| 民和| 哈巴河县| 蓬溪县| 汝城县| 汝城县| 宝丰县| 新郑市|