常用的PHP排序算法以及应用场景-快速排序

作者: wxfeng 分类: php 发布时间: 2017-02-19 00:00    阅读 1,240 次

5、快速排序

function quick_sort($arr) { 
    $n=count($arr); 
    if($n<=1) 
        return $arr; 
    $key=$arr[0]; 
    $left_arr=array(); 
    $right_arr=array(); 
    for($i=1;$i<$n;$i++) { 
        if($arr[$i]<=$key) 
            $left_arr[]=$arr[$i]; 
        else 
            $right_arr[]=$arr[$i]; 
    } 
    $left_arr=quick_sort($left_arr); 
    $right_arr=quick_sort($right_arr); 
    return array_merge($left_arr,array($key),$right_arr); 
}

 6、选择排序

function select_sort($arr) { 
    $n=count($arr); 
    for($i=0;$i<$n;$i++) { 
        $k=$i; 
        for($j=$i+1;$j<$n;$j++) { 
           if($arr[$j]<$arr[$k]) 
               $k=$j; 
        } 
        if($k!=$i) { 
            $temp=$arr[$i]; 
            $arr[$i]=$arr[$k]; 
            $arr[$k]=$temp; 
        } 
    } 
    return $arr; 
}

7、插入排序

function insertSort($arr) { 
    $n=count($arr); 
    for($i=1;$i<$n;$i++) { 
        $tmp=$arr[$i]; 
        $j=$i-1; 
        while($arr[$j]>$tmp) { 
            $arr[$j+1]=$arr[$j]; 
            $arr[$j]=$tmp; 
            $j--; 
            if($j<0) 
                break; 
        } 
    } 
    return $arr; 
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。