// 1.冒泡排序
function maopao($array)
{
$length = count($array);
// 第一层循环:控制轮数,一个数组总共n-1轮
for($i=1; $i<=$length-1; $i++)
{
// 第二层循环:控制比较元素的下标,数组元素下标从零开始
for($j=0; $j<$length-1; $j++)
{
if($array[$j] > $array[$j+1])
{
$temp = $array[$j];
$array[$j] = $array[$j+1];
$array[$j+1] = $temp;
}
}
}
return $array;
}
$array = [10, 8, 7, 9, 1, 4, 6];
$array = maopao($array);
echo '<pre>';
echo '冒泡排序:<br />';
print_r($array);
echo '</pre>';
// 2.斐波那契额数列
function naqie($n)
{
if($n == 1)
{
return 1;
}elseif($n == 2)
{
return 1;
}
return naqie($n-1)+naqie($n-2);
}
$naqie1 = naqie(5);
$naqie2 = naqie(11);
echo 'naqie1='.$naqie1.'<br />'; //5
echo 'naqie2='.$naqie2.'<br />'; //89
//3.快速排序
//快速排序
function rapidSort($arr)
{
$len = count($arr);
if($len <= 1)
return $arr;
$small = $big = [];
$cankao = $arr[0];
for($i=1; $i<$len; $i++)
{
if($arr[$i] > $cankao)
{
$big[] = $arr[$i];
}else{
$small[] = $arr[$i];
}
}
$sortSmall = rapidSort($small);
$bigSort = rapidSort($big);
return array_merge($sortSmall, array($cankao), $bigSort);
}
$arr = [3, 2, 5, 6, 7, 1, 4];
$arr = rapidSort($arr);
echo '<pre>';
print_r($arr);
echo '</pre>';