PHP快速排序

基本思想:

快速排序(Quicksort)是对冒泡排序的一种改进。他的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行快速排序,整个排序过程可以递归进行,以达到整个序列有序的目的。


<?php
/**
 * Created by PhpStorm.
 * User: zhangheg
 * Date: 2019/3/10
 * Time: 17:04
 */
$list = array(10,3,5,7,11,45,64,74,23,21,6);

function QuickSort($list){

    if(count($list)>1){
        $k = $list[0];
        $count = count($list);
        $x =[];
        $y =[];
        for ($i=1;$i<$count;$i++){
            if($list[$i]<=$k){
                $x[] = $list[$i];
            }else{
                $y[] = $list[$i];
            }

        }

        $x = QuickSort($x);
        $y = QuickSort($y);
        return array_merge($x,array($k),$y);

    }else{
        return $list;
    }
}
var_dump(QuickSort($list));

发表评论

电子邮件地址不会被公开。 必填项已用*标注