快排、冒泡、選擇、插入排序PHP實(shí)現(xiàn)

<?php 
/**
*快速排序
**/
function quickSort(&$arr,$left,$right)
{
    $start=$left;
    $end=$right;
    while($start<$end){
        while($arr[$start]<$arr[$left] && $start!=$end){
            $start++;
        }
        while($arr[$end]>$arr[$left] && $start!=$end){
            $end--;
        }
        $tmp=$arr[$start];
        $arr[$start]=$arr[$end];
        $arr[$end]=$tmp;
    }
    if($arr[$start]>$arr[$left]){
        $start--;
    }
    $tmp=$arr[$start];
    $arr[$start]=$arr[$left];
    $arr[$left]=$tmp;
    if($start-1>$left){
        quickSort($arr,$left,$start-1);
    }
    if($start+1<$right){
        quickSort($arr,$start+1,$right);
    }
}
/**
*快速排序1
**/
function quickSort1(&$arr,$left,$right)
{
    $i=$left;
    $j=$right;
    $flag=$arr[$left];
    while($i<$j)
    {
        while($arr[$j]>=$flag && $i<$j)
        {
            $j--;
        }
        if($i<$j)
        {
            $arr[$i++]=$arr[$j];
        }
        while($arr[$i]<$flag && $i<$j)
        {
            $i++;
        }
        if($i<$j)
        {
            $arr[$j--]=$arr[$i];
        }
    }
    $arr[$i]=$flag;
    if($i>$left){
        quickSort1($arr,$left,$i-1);
    }
    if($i<$right){
        quickSort1($arr,$i+1,$right);
    }
}
/**
*冒泡排序
*/
function BubbleSort(&$arr)
{
    $length=count($arr);
    for($i=0;$i<$length;$i++){
        for($j=0;$j<$length-$i-1;$j++){
            if($arr[$j+1]<$arr[$j]){
                $tmp=$arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$tmp;
            }
        }
    }
}
/**
*選擇排序
*/
function SelectSort(&$arr){
    $length=count($arr);
    for($i=0;$i<$length;$i++){
        $now=$i;
        $min=$arr[$i];      
        for($j=$i+1;$j<$length;$j++){
            if($arr[$j]<$min){
                $min=$arr[$j];
                $now=$j;
            }
        }
        $tmp=$arr[$i];
        $arr[$i]=$min;
        $arr[$now]=$tmp;
    }
}
/**
*插入排序
**/
function InsertSort(&$arr){
    $length=count($arr);
    for($i=1;$i<$length;$i++){
        $now=$arr[$i];
        if($now<$arr[$i-1]){            
            for($j=$i-1;$j>=0 && $arr[$j]>$now;$j--){
                $arr[$j+1]=$arr[$j];
            }
            $arr[$j+1]=$now;
        }
    }
}
//測(cè)試排序結(jié)果
for($i=0;$i<20;$i++){
    $arr[]=$i;
}
shuffle($arr);
print_r($arr);
//quickSort($arr,0,count($arr)-1);
InsertSort($arr);
print_r($arr);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容