PHP几个算法整理-PHP冒泡-PHP二分法-PHP求素数-PHP乘法表

PHP几个算法整理 涉及到以下几个示例。

PHP冒泡法 示例

  //PHP 冒泡  从小到大  
$a=array(3,2,4,9,8);
function getOrder ($a)
{
	$count = count($a);
	for ($i=0;$i<$count;$i++)
	{
		for ($j=$count-1;$j>0;$j--)
		{
			if ($a[$j] > $a[$j-1])
			{
				$temp = $a[$j];
				$a[$j] = $a[$j-1];
				$a[$j-1] = $temp;
			}
		}
	}
	return $a;
}
$a = getOrder($a); 

php二分法查找 代码示例


  //php 二分法查找  
  function erfenfa($a,$arr)  
   {  
       print_r($arr);  
       if(!emptyempty($a) && !emptyempty($arr))  
     {  
           $start = 0;  
           $end = count($arr)-1;  
          $i = 0;  
           while($start <= $end)        {  
                           $i ++;  
                           $step = floor($end / 2);  
                         if($a == $arr[$step])  
                         {  
                          print_r($arr[$step]);  
                        return $a;  
                        }  
                       if($a > $arr[$step])  
              {  
                   $start = $step;  
              }  
    
              if($a < $arr[$step])  
              {  
                   $end = $step;  
               }  
           }  
       }  
   }  

php求素数 – 计算 a 到 b 之间的素数。

//php求素数  - 计算 a 到 b 之间的素数。
function sushu($a,$b)
{
	if(!empty($a) && !empty($b))
	{
		if($b<$a) return;
		$temp = array();

		for($i=$a;$i<=$b;$i++)
		{
			$j = intval(sqrt($i));
			$flag = true;
			if($i<=3)
			{
				$temp[$i] = $i;
			}else
			{
				for($x=2;$x<=$j;$x++)
				{
					if($i%$x==0)
					{
						$flag = false;
						break;
					}
				}
				if($flag)
				{
					$temp[$i] = $i;
				}
			}
		}
		return $temp;
	}
}

PHP输出乘法表-递归 代码示例


//PHP输出乘法表-递归
function digui($a,$step)
{
	if($a > $step) return;
	if( !empty($a) && !empty($step) )
	{
		for($i=1;$i<=$a;$i++)
		{
			echo $i.'*'.$a.'='.$a*$i."\t";
			if($i == $a )	echo '
';
		}
		$a = $a + 1;
		digui($a,$step);
	}
}

分享