PHP 几个算法整理 涉及到以下几个示例
PHP 冒泡
PHP 二分法
PHP 求素数
PHP 乘法表
PHP 冒泡法 示例
代码如下:
- //PHP 冒泡 从小到大
- function maopao(&$arr)
- {
- if(!empty($arr))
- {
- for($i=0;$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. ;
- 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. ;
- if($i==$j) echo
- ;
- }
- }
- }
- }
来源: https://www.php1.cn/detail/php-7faf429207.html