美文网首页
php 实现常见算法

php 实现常见算法

作者: gurlan | 来源:发表于2019-12-02 10:45 被阅读0次

1.冒泡排序

$numbers = array(1,3,4,5,6,7,8,9,2,0);
$length = count($numbers);
for ($i=0;$i<$length-1;$i++){
    for ($j=0;$j<$length-$i-1;$j++){
        if ($numbers[$j]>$numbers[$j+1]){
            $temp = $numbers[$j+1];
            $numbers[$j+1] = $numbers[$j];
            $numbers[$j]=$temp;
        }
    }
}
var_dump($numbers);

2.快速排序

$numbers = array(16,3,4,5,6,7,8,9,2,0);
function quickSort($numbers){
    $length = count($numbers);
    if ($length<1){
        return $numbers;
    }
    $key = $numbers[0];
    $left = array();
    $right = array();
    for ($i=1;$i<$length;$i++){
        if ($numbers[$i]<$key){
            $left[] = $numbers[$i];
        }else{
            $right[] = $numbers[$i];
        }
       
    }

    $left = quickSort($left);
    $right = quickSort($right);
    return array_merge($left,array($key),$right);
}
}

quickSort($numbers);

3.斐波那契额数列
斐波那契数列:
1 1 2 3 5 8 13 21 34 55 …

概念:
前两个值都为1,该数列从第三位开始,每一位都是当前位前两位的和
规律公式为:
Fn = F(n-1) + F(n+1)
F:指当前这个数列
n:指数列的下标

非递归写法:
function fbnq($n){  //传入数列中数字的个数
    if($n <= 0){
        return 0;
    }
    $array[1] = $array[2] = 1; //设第一个值和第二个值为1
    for($i=3;$i<=$n;$i++){ //从第三个值开始
        $array[$i] = $array[$i-1] + $array[$i-2]; 
        //后面的值都是当前值的前一个值加上前两个值的和
    }
    return $array;
}

递归写法:

function fbnq($n){
    if($n <= 0) return 0;
    if($n == 1 || $n == 2) return 1;
    return fbnq($n - 1) + fbnq($n - 2);
}

4.判断是否是回文

 $string="abc126321cba";
  $stra=array();
  $strb=array();
  $res=checkhuiwen($string);
  function checkhuiwen($string){
       //输入字符串转换为数组
     for($i=0;$i<strlen($string);$i++){
        $stra[$i]=$string[$i];
      }
       //逆序输出数组array_reverse
       $strb=array_reverse($stra);
       //判断两数组是否相等,相等为回文
      for($i=0;$i<count($stra);$i++){
       if($stra[$i]!=$strb[$i]){
          return 1;
          break;
       }     
  }
  return 2;
  }
  if($res==2){
    echo "YES";
  }else{
    echo "NO!";
  }

相关文章

  • 0.PHP面试都问什么

    PHP基础语法知识PHP底层原理常见的算法实现MysqlRedisHTTP原理fast-cgi常见的Linux命令...

  • php 实现常见算法

    1.冒泡排序 2.快速排序 3.斐波那契额数列斐波那契数列:1 1 2 3 5 8 13 21 34 55 … 概...

  • PHP实现常见的排序算法

    在PHP中已经有现成的函数帮助我们为数组排序,那我们还有必要去自己实现为数组排序的算法吗?有的。我们知道其实 程序...

  • 2018-08-02

    php实现组合枚举算法 源码

  • 常用的排序算法

    常用的排序算法(PHP实现)_慕课手记

  • 算法 php实现

    循环队列

  • php常见算法题

  • PHP常见排序算法

    1:冒泡排序 排序思路:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • 分层抽样

    这篇帖子中实现了常见集中抽样方法:【机器学习算法-python实现】采样算法的简单实现 但没有是实现 分层抽样。今...

网友评论

      本文标题:php 实现常见算法

      本文链接:https://www.haomeiwen.com/subject/kwpzwctx.html