# 非开发编码集结

UioSun

### Days 2

：给定一个乱序的、纯数字的、值不重复的数组，请用递归，将其排序。

``````function quick_sort(\$array)
{
if (count(\$array) > 1) {
\$array_left = [];
\$array_right = [];
\$base = array_pop(\$array);

foreach (\$array as \$item) {
if (\$base < \$item) {
array_push(\$array_left, \$item);
} else {
array_push(\$array_right, \$item);
}
}
\$array_left = quick_sort(\$array_left);
\$array_right = quick_sort(\$array_right);

return array_merge(\$array_left, [\$base], \$array_right);
}

return \$array;
}

\$array = [2, 6, 12, 3, 1, 9];
print_r(quick_sort(\$array));  /* Result is Array
(
[0] => 12
[1] => 9
[2] => 6
[3] => 3
[4] => 2
[5] => 1
).
*/``````

### Days 1

：给定一个数字数组，请用递归，将其内部的值相加。

``````function sum(\$array)
{
if (count(\$array) > 1) {
return array_pop(\$array) + sum(\$array);
}
return \$array[0];
}

echo sum([2, 6, 3, 1, 9]);  // Result is 21.``````

：给定数组与上题相同，请用递归，统计其内部值的个数。

``````function array_count(\$array)
{
\$count = 0;
if (\$array !== []) {
array_pop(\$array);
return ++\$count + array_count(\$array);
}
return \$count;
}

echo array_count([2, 6, 10, 3, 1, 9]);  // Result is 6``````