几种算法

// 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>';





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值