为了找工作,还是要看一看常考的东西

<?php

$arr = array(60,5,9,8,2,1,3,4,9,10);

function quick_sort($arr){
    if(!is_array($arr)) return false;
    $length = count($arr);
    if($length<=1) return $arr;
    $left = array();
    $right = $left;
    for($i=1; $i<$length; $i++){
        if($arr[$i]<$arr[0]){
            $left[] = $arr[$i];
        }else{
            $right[] = $arr[$i];
        }
    }
    $left = quick_sort($left);
    $right = quick_sort($right);
    return array_merge($left, array($arr[0]),$right);
}

function insertSort($arr) {
    $len = count($arr);  
    for ($i = 1; $i < $len; $i++){
        // 当前值  
        $key = $arr[$i];  
        // 当前位置  
        $pos = $i;  
        // 如是当前位置 >0 && 当前值的前一个值 > 当前值 选出最值  
        while ($pos > 0 && $arr[$pos - 1] > $key) {  
            // 当前值  =  前一个值
            $arr[$pos] = $arr[$pos - 1];
            // 当前位置后移
            $pos = $pos - 1;
        }
        // 找到当前值的位置
        $arr[$pos] = $key;
        echo join(',', $arr);
        echo '<br>';
    }
    return $arr;
}
function selectSort($arr){
    //定义进行交换的变量
    $temp = 0;
    for($i = 0; $i < count($arr)-1; $i++){
        //假设$i就是最小值
        $valmin = $arr[$i];
        //记录最小值的下标
        $minkey = $i;
        for($j = $i + 1; $j < count($arr); $j++){
            //最小值大于后面的数就进行交换    
            if($valmin > $arr[$j]){
                $valmin = $arr[$j];
                $minkey = $j;
            }
        }
        //进行交换
        $temp = $arr[$i];
        $arr[$i] = $arr[$minkey];
        $arr[$minkey] = $temp;
    }
    return $arr;
}
echo '快排',implode(',',quick_sort($arr)).'<br>';
echo '插入排序',implode(',',insertSort($arr)).'<br>';
echo '选择排序',implode(',',selectSort($arr)).'<br>';
最后修改:2021 年 01 月 12 日
如果觉得我的文章对你有用,请随意赞赏