PHP自己写的排序方法

 1 <?php
 2 
 3 $arr = array(5,2,6,1,0,3);
 4 
 5 $len = count($arr);
 6 
 7 
 8 /*/冒泡法排序写法
 9 for($x=0;$x<$len-1;$x++){
10     for($y=0;$y<$len-$x-1;$y++){
11         if($arr[$y]<$arr[$y+1]){
12             $tmp = $arr[$y];
13             $arr[$y] = $arr[$y+1];
14             $arr[$y+1] = $tmp;
15         }
16     }
17 }
18 */
19 
20 
21 //选择排序
22 for($i=0;$i<$len-1;$i++){
23     for($j=$i+1;$j<$len;$j++){
24         if($arr[$i]>$arr[$j]){
25             $tmp = $arr[$i];
26             $arr[$i] = $arr[$j];
27             $arr[$j] = $tmp;
28         }
29     }
30 }
31 
32 
33 
34 
35 print_r($arr);
$arr = array(20,11,18,33,17,32,15,22,13,25,36,16,66);

function qSort($arr){
    if(!is_array($arr) || empty($arr)) return array();

    # 获取数组的长度
    $len = count($arr);

    # 如果数组中有一个元素,直接返回这个数组
    if($len<=1) return $arr;

    $key   = $arr[0];
    $left  = array();
    $right = array();

    for($i=1;$i<$len;$i++){
        if($arr[$i]<=$key){
            $left[] = $arr[$i];
        }else{
            $right[] = $arr[$i];
        }
    }
    $left = qSort($left);
    $right = qSort($right);
    return array_merge($left,array($key),$right);
}
echo '<pre>';
print_r(qSort($arr));
原文地址:https://www.cnblogs.com/ahwu/p/3025519.html