php 不用php函数写出这个程序,自己实现php函数,

php不用php函数写出这个程序,自己实现php函数,$a=array(2,8,1,9,6,4,3,10)两大一小的排序最后结果等于:$a=array(2,3,1,6,8... php 不用php函数写出这个程序,自己实现php函数,$a = array(2, 8, 1, 9, 6, 4, 3, 10)
两大一小的排序
最后结果等于:$a = array(2, 3, 1, 6, 8, 4, 9, 10);
这个程序咋写,求大神写一下,不用php函数,自己实现,谢谢谢
展开
 我来答
百度网友577e45c
2016-12-28 · TA获得超过1060个赞
知道小有建树答主
回答量:987
采纳率:81%
帮助的人:369万
展开全部
$a = array(2, 8, 1, 9, 6, 4, 3, 10);
function px($a){
    $lit = array();
    $big = array();
    $x = $a[0];
    for ($i=1;$i<count($a);$i++){
        if($a[$i]<$x){
            $lit[] = $a[$i];
        }else{
            $big[] = $a[$i];
        }
    }
    $lit = count($lit)>1?px($lit):$lit;
    $big = count($big)>1?px($big):$big;
    return array_merge($lit,array($x),$big);
}
$res = px($a);//这是递归排序,也可以用楼上的双重循环
$count = count($res);
$res1 = array();
for ($j=0;$j<$count;$j+=3){
    if($j+2<$count){
        $res1[$j] = $res[$j+1];
        $res1[$j+1] = $res[$j+2];
        $res1[$j+2] = $res[$j];
    }else{
        if($count - $j == 1){
            $res1[$j] = $res[$j];
        }else{
            $res1[$j] = $res[$j];
            $res1[$j+1] = $res[$j+1];
        }
        break;
    }
}
echo '<pre>';print_r($res1);
苦瓜瓜仁
2016-12-28 · 超过35用户采纳过TA的回答
知道答主
回答量:87
采纳率:60%
帮助的人:44.8万
展开全部
什么叫2大1小?排序的逻辑描述不清怎么实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿神1990
2016-12-28 · TA获得超过178个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:260万
展开全部
看不懂这个排序有啥规律
更多追问追答
追问
就是先从小到大排序是1,2, 3, 4, 6, 8, 9, 10
然后以三个元素把数组分开,得到(1,2,3)(4,6,8)(9,100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式