首页 > 代码库 > PHP之快速排序和冒泡排序性能对比

PHP之快速排序和冒泡排序性能对比

//冒泡排序
function bubble_sort($arr){
    $count = count($arr);
    for($i=0;$i<$count;$i++){
        for($j=$count-1;$j>$i;$j--){
            if($arr[$j]<$arr[$j-1]){
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j-1];
                $arr[$j-1] = $tmp;
            }
        }
    }
    return $arr;
}
//快速排序
function quick_sort($arr){
    $count = count($arr);
    if($count<=1)return $arr;
    $key = $arr[0];
    $l = array();
    $r = array();
    for($i=1;$i<$count;$i++){
        if($arr[$i]<=$key){
            $l[] = $arr[$i];
        }else{
            $r[] = $arr[$i];
        }
    }
    $l = quick_sort($l);
    $r = quick_sort($r);
    return array_merge($l,array($key),$r);
}
//随机产生1600长度数组;
$a = array_rand(range(1,1600),1600);
//打乱数组
shuffle($a);

$t1 = microtime(true);
$a1 = bubble_sort($a);
$t2 = microtime(true);
echo $t2-$t1;

echo "<hr color=‘red‘>";

$t3 = microtime(true);
$a2 = quick_sort($a);
$t4 = microtime(true);
echo $t4-$t3;

 

PHP之快速排序和冒泡排序性能对比