0
function quick($a) {
if (count($a) < 2) return $a;
$l = [];
$r = [];
$pivot = $a[0];
foreach ($a as $val) {
if ($val > $pivot) {
$r[] = $val;
} else {
$l[] = $val;
}
}
return array_merge(quick($l), [$pivot], quick($r));
}
print_r(quick($a));
我得到這個錯誤:這個快速排序功能有什麼問題?
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /Applications/XAMPP/xamppfiles/htdocs/sort.php on line 46
46號線是$l[] = $val;
就是這樣!我只是做了'$ pivot = array_shift($ a)'並且工作,謝謝 – Ziarno
這也可以做到這一點......無論哪種方式的作品。你一定要防止它使它成爲無論是兩個子陣列的... – ircmaxell
@ircmaxell只是出於好奇,是有過在那裏像這樣的出執行本地的PHP數組排序功能的情況? – Orangepill