龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php冒泡排序和快速排序

时间:2014-07-22 02:06来源:网络整理 作者:网络 点击:
分享到:
php冒泡排序和快速排序 [代码片段(90行)]
<?php
$arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);

//交换两值
function swap(&$m, &$n){
    $temp = $m;
    $m = $n;
    $n = $temp;

    /* 如数组中有小数时,以下方法会省略小数点后面的数
    $m = $m ^ $n;
    $n = $m ^ $n;
    $m = $m ^ $n;
    */
}

//冒泡排序
function bubbleSort($arr){
    if(!is_array($arr)) return $arr;
    $count = count($arr);
    for($i=1; $i<$count; $i++){
        for($j=0; $j<$count-$i;$j++){
            if($arr[$j] > $arr[$j+1]){
                /*
                $temp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $temp;
                */
                /*
                $arr[$j] = $arr[$j] + $arr[$j+1];
                $arr[$j+1] = $arr[$j] - $arr[$j+1];
                $arr[$j] = $arr[$j] - $arr[$j+1];
                */
                /*
                $arr[$j] = $arr[$j] ^ $arr[$j+1];
                $arr[$j+1] = $arr[$j] ^ $arr[$j+1];
                $arr[$j] = $arr[$j] ^ $arr[$j+1];
                */
                swap($arr[$j], $arr[$j+1]);
            }
        }
    }
    return $arr;
}

$arr2 = bubbleSort($arr);
echo implode(',', $arr2).'<hr>';

//冒泡排序
function bubbleSort2($arr){
    if(!is_array($arr)) return $arr;
    $count = count($arr);
    for($i=0; $i<$count-1; $i++){
        for($j=$i+1; $j<$count; $j++){
            if($arr[$i] < $arr[$j]){
                /*
                $arr[$i] = $arr[$i] + $arr[$j];
                $arr[$j] = $arr[$i] - $arr[$j];
                $arr[$i] = $arr[$i] - $arr[$j];
                */
                swap($arr[$i], $arr[$j]);
            }
        }
    }
    return $arr;
}
$arr3 = bubbleSort2($arr);
echo implode(',', $arr3).'<hr>';;

//快速排序
function quickSort($arr){
    if(!is_array($arr)) return $arr;
    $len=count($arr);
    for($i=0; $i<$len; $i++){
        $min = $arr[$i];
        for($j=$i+1; $j<$len; $j++){
            if($arr[$i] > $arr[$j]){
                $temp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $temp;
            }
        }
        $min = $arr[$j];
    }
    return $arr;
}
$arr4 = quickSort($arr);
echo implode(',', $arr4);
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接