zoukankan      html  css  js  c++  java
  • 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;
    }

    ?>

  • 相关阅读:
    C# 设计模式-桥接模式
    C# 设计模式-外观模式
    C# 设计模式-代理模式
    楼层导航奇葩问题解决
    楼层导航和回顶部
    回顾
    禁止右击选中
    安装客服在线系统
    csdn 分享私藏的18个黑科技网站,想找什么软件就找什么软件!!!
    eyoucms 模板
  • 原文地址:https://www.cnblogs.com/missphp/p/9253758.html
Copyright © 2011-2022 走看看