php实现快速排序和冒泡排序

<?php

$arr = array(9,4,12,34,1,43,23,7,3,4,5,6,33,22,12,21,15,62,1222,21,322,432,31,54,64);
//$sorted_arr = quickSort($arr);
$sorted_arr = bublleSort($arr);
var_dump($sorted_arr);


// 快速排序算法
function quickSort($arr){
    if(count($arr)>1){
        $k=$arr[0];
        $x=array();
        $y=array();
        $_size=count($arr);
        for($i=1;$i<$_size;$i++){
            if($arr[$i]<=$k){
                $x[]=$arr[$i];
            }else{
                $y[]=$arr[$i];
            }
        }
        $x=quickSort($x);
        $y=quickSort($y);
        return array_merge($x,array($k),$y);
    }else{
        return $arr;
    }
}

// 冒泡排序算法
function bublleSort($arr){
    for($l = count($arr);$l>1;$l--){
        for($i=0;$i<$l-1;$i++){
            if($arr[$i] > $arr[$i+1]){
                $tmp = $arr[$i];
                $arr[$i] = $arr[$i+1];
                $arr[$i+1] = $tmp;
            }
        }
    }
    return $arr;
}
?>

 

 2015.3.16增加插入排序

<?php                                                                                                                                                                
function insertSort($arr) {
    for ($i = 1; $i < count($arr); $i++) {
        $tmp = $arr[$i];
        $key = $i-1;
        while ($key >= 0 && $tmp < $arr[$key]){
            $arr[$key+1] = $arr[$key];
            $key--;
        }
        if (($key+1) != $i) {
            $arr[$key+1] = $tmp;
        }
    }
    return $arr;
}

$arr = array(3,4,2,54,12,34,65,12,456,12,45,75);
$arr = insertSort($arr);
var_export($arr);

?>

 

posted @ 2014-06-20 16:36  soj  阅读(209)  评论(0编辑  收藏  举报