Hallo!
Ich habe ein Verständnisproblem mit folgendem Code:
Den ersten Teil verstehe ich, die Funktion "merge" kann ich allerdings nicht richtig nachvollziehen. Vor allem den Teil mit array_splice.
Kann mir das vielleicht jemand näher erklären? Danke schon mal im Voraus!
Ich habe ein Verständnisproblem mit folgendem Code:
PHP-Code:
<?php
function mergesort($array){
if (sizeof($array) <= 1)
return $array;
// teile Array in zwei Hälften
$linkerTeil = array_slice($array, 0, (int)(count($array)/2));
$rechterTeil = array_slice($array, (int)(count($array)/2));
// Rekursion - teile die Hälften wiederum auf
$linkerTeil = mergesort($linkerTeil);
$rechterTeil = mergesort($rechterTeil);
// Aufruf zum Zusammenfügen der Teile
$returnArray = merge($linkerTeil, $rechterTeil);
return $returnArray;
}
function merge($linkerTeil, $rechterTeil) {
$result = array();
// solange beide Teile nicht leer sind
while (count($linkerTeil)>0 && count($rechterTeil)>0) {
if ($linkerTeil[0] <= $rechterTeil[0]) {
array_push($result, array_shift($linkerTeil));
}
else {
array_push($result, array_shift($rechterTeil));
}
}
// wenn eines der Arrays vor dem anderen leer wird:
array_splice($result, count($result), 0, $linkerTeil);
array_splice($result, count($result), 0, $rechterTeil);
return $result;
}
Kann mir das vielleicht jemand näher erklären? Danke schon mal im Voraus!
Kommentar