|
按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)
[U]复制代码[/U] 代码如下:
//二分查找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 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$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;$j--){
if($a[$j]
[U]复制代码[/U] 代码如下:
/**
* 排列组合
* 采用二进制方法进行组合的选择,如表示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
您可能感兴趣的文章:PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解一致性哈希算法以及其PHP实现详细解析php中通过数组进行高效随机抽取指定条记录的算法php四种基础算法代码实例php加密算法之实现可逆加密算法和解密分享一组PHP可逆加密解密算法实例代码php的hash算法介绍排序算法之PHP版快速排序、冒泡排序php对称加密算法示例PHP中对各种加密算法、Hash算法的速度测试对比代码又一个PHP实现的冒泡排序算法分享PHP实现克鲁斯卡尔算法实例解析
|
|