Heim > Backend-Entwicklung > PHP-Tutorial > PHP写的归并排序。谁能看的懂?。。。

PHP写的归并排序。谁能看的懂?。。。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:45:16
Original
1082 Leute haben es durchsucht

<br> <?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);
Nach dem Login kopieren
Nach dem Login kopieren

这个问题已被关闭,原因:无法获得确切结果的问题

回复内容:

<br> <?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);
Nach dem Login kopieren
Nach dem Login kopieren

一般我看到这种代码面试第一关就通不过。first拼错、代码格式不规范、$f,$s,$sf是什么东西?这种代码首先就不是容易让人看懂,何谈维护和理解

有点晕,看了一会发现,好像合并过程中带着冒泡排序的意思

$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));
Nach dem Login kopieren

Verwandte Etiketten:
php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage