• PHP基础算法


    <?php

    //冒泡排序算法

    function maopao($arr){

      $len = count($arr);

      if($len<=1){

        return $arr;

      }

      for($i=1;$i<$len;$i++;){

        for($j=0;$j<$len-$i;$j++){

          if($arr[$j]>$arr[$j+1]){

            $temp  = $arr[$j];

            $arr[$j] = $arr[$j+1];

            $arr[$j+1] = $temp;

          }

        }

      }

      return $arr;

    }

    //快速排序算法

    function quick_sort($arr){

      $len = count($arr);

      if($len <= 1){

        return $arr;

      }

      $left = $right = array();

      for($i=1;$i<$len;$i++;){

        if($arr[0]>$arr[$i]){

          $left[] = $arr[$i];

        }else{

          $right[] = $arr[$j];

        }

      }

      $left = quick_sort($left);

      $right = quick_sort($right);

      return array_merge($left,array($arr[0]),$right);

    }

    function selectSort($arr) {
      //双重循环完成,外层控制轮数,内层控制比较次数
      $len=count($arr);
      for($i=0; $i<$len-1; $i++) {
        //先假设最小的值的位置
        $p = $i;
        for($j=$i+1; $j<$len; $j++) {
          //$arr[$p] 是当前已知的最小值
          if($arr[$p] > $arr[$j]) {
            //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。
            $p = $j;
          }
        }
        //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。
        if($p != $i) {
          $tmp = $arr[$p];
          $arr[$p] = $arr[$i];
          $arr[$i] = $tmp;
        }
      }
      //返回最终结果
      return $arr;
    }


    function insertSort($arr) {
      $len=count($arr);
      for($i=1; $i<$len; $i++) {
        $tmp = $arr[$i];
        //内层循环控制,比较并插入
        for($j=$i-1;$j>=0;$j--) {
          if($tmp < $arr[$j]) {
            //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换
            $arr[$j+1] = $arr[$j];
            $arr[$j] = $tmp;
          } else {
            //如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。
            break;
          }
        }
      }
      return $arr;
    }

    ?>

  • 相关阅读:
    OpenERP Framework API存档
    OpenERP 7 picking order 继承需要注意的地方
    Unity战斗系统之AI自主决策
    简易2D横版RPG游戏制作
    UGUI之Canvas Group
    UGUI之Canvas和EventSystem
    NGUI之scroll view的制作和踩坑总结
    NGUI之Toggle实现单选框
    Unity中对象池的使用
    继承MonoBehaviour类的优缺点和相关报错
  • 原文地址:https://www.cnblogs.com/missphp/p/9253758.html
Copyright © 2020-2023  润新知