Ужас какой. Такой алгоритм точно никуда не годится.
Например, если тебе придётся "динамически расширять массив" внутри рекурсивной функции, то при больших размерах исходного массива тебе тупо не хватит оперативной памяти, и возникнет переполнение стека.
Уж проще вектор освоить, реально Нету в нём ничего сложного...