排序
1.冒泡排序
<?php
$arr = [12,7,6,8,9,8,13,23];
$count = count($arr);
for($i=0;$i<$count-1;$i++)
{
for($j=0;$j<$count-$i-1;$j++)
{
if($arr[$j]>=$arr[$j+1])
{
$t = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $t;
}
}
}
var_dump($arr);
?>
查找
1.二分查找
<?php
$arr = [1,5,6,9,12,54,67];//须为递增数组
$i = 0;
function binSearch($arr,$value)
{
$count = count($arr);
$lower = 0;
$high = $count - 1;
global $i;
while($lower<$high)
{
$i++;
if($arr[$lower] == $value)
{
return $lower;
}
if($arr[$high] == $value)
{
return $high;
}
$middle = intval(($lower + $high)/2);
if($arr[$middle] == $value)
{
return $middle;
}
if($value>$arr[$middle])
{
$lower = $middle+1;
}
if($value<$arr[$middle])
{
$high = $middle-1;
}
}
return -1;
}
$pos = binSearch($arr,12);
echo $pos;
echo $i;
?>