深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表

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

  PHP冒泡

  PHP二分法

  PHP求素数

  PHP乘法表

  PHP冒泡法 示例

  

复制代码 代码如下:

  //PHP冒泡  从小到大

  function maopao(&$arr)

  {

  if(!empty($arr))

  {

  for($i=0;$i<count($arr);$i++)

  {

  if($arr[$i]>$arr[$j])

  {

  //开始交换

  $temp = $arr[$i];

  $arr[$i] = $arr[$j];

  $arr[$j] = $temp;

  }

  }

  }

  return $arr;

  }

  }

  php二分法查找 代码示例

  

复制代码 代码如下:

  //二分法查找

  function erfenfa($a,$arr)

  {

  print_r($arr);

  if(!empty($a)  &&  !empty($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);

  }

  }

  PHP输出乘法表-循环 代码示例

  

复制代码 代码如下:

  //PHP输出乘法表-循环

  function chengfa($a,$step)

  {

  if( !empty($a) && !empty($step) )

  {

  for($i=$a;$i<=$step;$i++)

  {

  for($j=1;$j<=$i;$j++)

  {

  echo $j.'*'.$i.'='.$i*$j.”\t”;

  if($i==$j) echo ‘

  ‘;

  }

  }

  }

  }