PHP常用基础算法(未完待续)

来源:互联网 发布:vb续行符 编辑:程序博客网 时间:2024/05/22 15:07

<?php

  #先来点基础算法吧!12个(小到大)

  $array = array( 23,4,23,35,99,7,8,787,4,464,77773,9 );

  

  echo date("Y-m-d H:i:s");

  echo "</br>";

  print_r( $array );

  echo "</br>";

  print_r(paomao( $array ));

  echo date("Y-m-d H:i:s");

  echo "</br>";

  print_r(kuaisu( $array ));

  echo date("Y-m-d H:i:s");

  echo "</br>";

  print_r(xuanze( $array ));

  echo date("Y-m-d H:i:s");

  

  

  

  #最基础的o(n^2)

   function paomao( $array ){

      if($array){

           $num = count( $array ) ;

           for( $i = 0 ; $i < $num ; $i++ ){

              for( $j = $num - 1 ; $j > $i ; $j-- ){

                  if( $array[$j] < $array[$j-1]){

                   $ret = $array[$j];

                   $array[$j] = $array[$j-1];

                   $array[$j-1] = $ret;

                  }

              } 

           }       

      }

      return $array;

   }

  

   

   #来一个快速排序吧。。毕竟带着快速 值得我们看看

   #所谓快速就是把一个数组找一个标记。然后分成两个子数组

   #然后按照同样的方式,递归

   function kuaisu( $array ){

       if($array){

       #选个标记位

       $num = count( $array );

       $flag = $array[0];

       $left = array();

       $right = array();

       foreach( $arrayas $key => $val){

       if( $val > $flag ){

       $right[] = $val;

       }else if( $val < $flag ){

       $left[] = $val;

       }else{

       $center[] = $flag;

       }

       }

       $left = kuaisu( $left );

       $right = kuaisu( $right );

       $array = array_merge($left,$center,$right);

       }

       return $array ;

   }

   

   #选择排序

   #和冒泡的关系

   function xuanze( $array ){

       if( $array ){

       $num = count( $array );

       for( $i = 0 ; $i < $num ; $i++){

       $p = $i;

       for( $j = $i; $j < $num ; $j++){

       if( $array[ $p ] > $array[ $j ]){

       $p = $j;

       }

       }

       if( $i != $p ){

        $ret = $array[ $p ];

        $array[ $p ] = $array[ $i ];

        $array[ $i ] = $ret ;

       }

       }

       return $array ;

       }else{

       echo " ERROR ";

       }

   }

0 0
原创粉丝点击