冒泡排序法
$arr = array(1,3,5,32,756,2,6);
$len = count($arr);
$temp = "";
for($i=0; $i<$len; $i++)
{
for($j=1; $j<$len-$i; $j++)
{
if($arr[$j-1] > $arr[$j])
{
$temp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $temp;
}
}
}
快速排序法
function Qsort($arr)
{
$len = count($arr);
if($len<=1)
{
return $arr;
}
$key = $arr[0];
for($i=0; $i<$len; $i++)
{
if($arr[$i] <= $key)
{
$left[] = $arr[$i];
}
else
{
$right[] = $arr[$i];
}
}
$left[] = Qsort($left);
$right[] = Qsort($right);
return array_merge($left,array($key),$right);
}
插入排序法
$temp = "";
$len = count($arr);
for($i=1; $i<$len; $i++)
{
$temp = $arr[$i];
$j = $i-1;
while($arr[$j]>$temp && $j>=0)
{
$arr[$j+1] = $arr[$j];
$arr[$j] = $temp;
$j--;
}
}
选择排序法
$arr = array(1,3,5,32,756,2,6);
$len = count($arr);
$min = "";
$temp = "";
for($i=0; $i<$len-1; $i++)
{
$min = $i;
for($j=$i+1; $j<$len; $j++)
{
if($arr[$min] > $arr[$j])
{
$min = $i;
}
}
if($min!=$i)
{
$temp = $arr[$min];
$arr[$min] = $arr[$i];
$arr[$i] = $temp;
}
}
二分查找法
function Pfind($arr, $low, $high, $key)
{
if($low > $high)
{
return -1;
}
$mid = intval(($low+$high)/2);
if($arr[$mid] == $key)
{
return $mid;
}
elseif($arr[mid] < $key)
{
return Pfind($arr, $mid+1, $high, $key);
}
else
{
return Pfind($arr, $low, $mid-1, $key);
}
}
杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
$arr = array();
for($i=0; $i<6; $i++)
{
$arr[$i][0] = 1;
$arr[$i][$i] = 1;
}
for($i=2; $i<6; $i++)
{
for($j=1; $j<$i; $j++)
{
$arr[$i][$j] = $arr[$i-1][$j-1]+$arr[$i-1][$j];
}
}
for($i=0; $i<6; $i++)
{
for($j=0; $j<=$i; $j++)
{
echo $arr[$i][$j]." ";
}
echo "<br/>";
}
将一个数插入排序好数组
$in = 2;
$arr = array(1,3,5,32,756,2,6);
$len = count($arr);
if($in > $arr[$len-1])
{
$arr[$len] = $in;
}
for($i=0; $i<$len; $i++)
{
if($arr[$i] >= $in)
{
$temp = $arr[$i];
$arr[$i] = $in;
for($j=$i+1; $j<$len+1; $j++)
{
$temp2 = $arr[$j];
$arr[$j] = $temp;
$temp = $temp2;
}
}
}
牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛
function Bcow($n)
{
static $num = 1;
for($i=1; $i<=$n; $i++)
{
if($i>4 && $i<15 ){ $num++; Bcow($n-$i); }
if($i>=20){ $num--; }
}
return $num;
}