php基础算法

/*快速排序法*/

function quick_sort($arr){
    $n=count($arr);
    if($n<=1)
        return $arr;
    $key=$arr[0];
    $left_arr=$right_arr=array();
    for($i=1;$i<$n;$i++){
        if($arr[$i]<$key)//从小到大排序
            $left_arr[]=$arr[$i];
        else
            $right_arr[]=$arr[$i];
    }
    $left_arr=quick_sort($left_arr);
    $right_arr=quick_sort($right_arr);
    return array_merge($left_arr,array($key),$right_arr);
}

/*冒泡排序法*/

function popo($arr){
    $n=count($arr);
    if($n<=1)
        return $arr;
    for ($i=0;$i<$n;$i++){
        for($j=$i+1;$j<$n;$j++){
            if($arr[$i]<$arr[$j]){//从大到小排序
                $tmp=$arr[$j];
                $arr[$j]=$arr[$i];
                $arr[$i]=$tmp;
            }
        }
    }
    return $arr;
}

/*二分查找法*/

function bin_sch($array,  $low, $high, $k){
    if ( $low <= $high){
        $mid =  intval(($low+$high)/2 );
        //echo $low.",".$high.",".$mid.'</br>';
        if ($array[$mid] ==  $k){
            return $mid;
        }elseif ( $k < $array[$mid]){
            return  bin_sch($array, $low,  $mid-1, $k);
        }else{
            return  bin_sch($array, $mid+ 1, $high, $k);
        }
    }
    return -1;
}

文章来源: php基础算法

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:php基础算法