This problem can be performed in o(n) with normal iterative approach.
Here is vanilla flavor of its implementation in recursion
#include
/**
* Recursion version of array swap
*
* Kaleb Woldearegay
*/
void reverse(int*arr, int i, int size);
void print(int*arr, int size);
void main()
{
int nums[] = {4,5,2,13,0}, i=0, size=5;
i = 0;
print(nums, 5);
reverse(nums, i, size-1);
print(nums, 5);
}
void reverse(int*stk, int i, int size)
{
if (i>=size)
{
return;
}
else
{
int tmp = stk[i];
reverse(stk, i+1, size-1);
stk[i] = stk[size];
stk[size] = tmp;
}
}
void print(int*nums, int size)
{
int i=0;
while (i<size)
{
printf("%in", nums[i]);
i++;
}
}