Heim > Fragen und Antworten > Hauptteil
<?php
function merge($frist=array(),$second=array(),$attribute=''){
$key=0;
$c=0;
$d=0;
$temp=array();
for($a=0;$a<count($frist);$a++){
for($b=$c;$b<count($second);$b++){
if($frist[$a]<=$second[$b]){
$d++;
$temp[$key]=$frist[$a];
$key++;
break;
}
else{
$c++;
$temp[$key]=$second[$b];
$key++;
}
}
}
if($frist[$d-1]<=$second[$c-1]){
for($d;$d<count($frist);$d++){
array_push($temp, $frist[$d]);
}
}
else{
for($b;$b<count($second);$b++){
array_push($temp, $second[$b]);
}
}
return $temp;
}
$f=array(1,2,3,4,5,6,9,10,100,101);
$s=array(1,2,3,4,8,20,21,22,300);
$sf=merge($f,$s);
print_r($sf);
高洛峰2017-04-10 14:51:41
一般我看到这种代码面试第一关就通不过。first拼错、代码格式不规范、$f,$s,$sf是什么东西?这种代码首先就不是容易让人看懂,何谈维护和理解
伊谢尔伦2017-04-10 14:51:41
有点晕,看了一会发现,好像合并过程中带着冒泡排序的意思
$arrayA=array(1,3,2,4,5,6,9,10,100,101);
$arrayB=array(1,2,3,103,7,8,20,21,22,300);
$arrayMerge=array_merge($arrayA,$arrayB);
function bubbleSort($array){
$count=count($array);
for($i=0;$i<$count-1;$i++){//循环比较
for($j=$i+1;$j<$count;$j++){
if($array[$j]<array[$i]){//执行交换
$temp=$array[$i];
$$array[$i]=$array[$j];
$array[$j]=$temp;
}
}
}
return$array;
}
var_dump(bubbleSort($arrayMerge));