PHP快速算法

2020-09-09  本文已影响0人  ES_KYW

PHP快速算法,注意数组地址引用,便于打印

<?php
      function quik_sort(&$s,$l,$r)
      {
        if ($l < $r) {
            
            $i=$l;
            $j=$r;
            $x = $s[$l];
            
            while ($i<$j) {
            
                while ( $i<$j && $s[$j] >= $x) {
                    $j--;
                }
                $s[$i]=$s[$j];
                    
                while ( $i<$j && $s[$i] <= $x) {
                    $i++;
                }
                $s[$j]=$s[$i];  
            }
            
            $s[$i] = $x;
            
            quik_sort($s,$l,$i-1);
            quik_sort($s,$i+1,$r);
        } 
      }
    $arr = [1,2,4,3,2,5,6,8,3,465,21,34,5,1];
    quik_sort($arr,0,count($arr)-1);
    print_r($arr);
?>
Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 2
    [4] => 3
    [5] => 3
    [6] => 4
    [7] => 5
    [8] => 5
    [9] => 6
    [10] => 8
    [11] => 21
    [12] => 34
    [13] => 465
)
上一篇下一篇

猜你喜欢

热点阅读