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函数,自己实现,谢谢谢 展开
两大一小的排序
最后结果等于:$a = array(2, 3, 1, 6, 8, 4, 9, 10);
这个程序咋写,求大神写一下,不用php函数,自己实现,谢谢谢 展开
3个回答
展开全部
$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);
展开全部
什么叫2大1小?排序的逻辑描述不清怎么实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看不懂这个排序有啥规律
更多追问追答
追问
就是先从小到大排序是1,2, 3, 4, 6, 8, 9, 10
然后以三个元素把数组分开,得到(1,2,3)(4,6,8)(9,100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询