I haven't found anything with the specific needs of my function to do this, yes, it is for homework.
So I have:
public void reverseArray(int[] x) {
}
Precondition: x.length > 0
The fact that I can't have the function return anything, and the only argument is an array is leaving me stumped.
I've tried using loops along with the recursion, but everything I've tried seems to end up with infinite instances of the function being made.
I've gotten an idea/suggestion to use another function along with this one, but, how to use the original recursively is beyond me at the moment.
Any help is appreciated.
void reverseArray(int[] x){
reverse(x, 0, x.length -1);
}
void reverse(int[] x, int i, int j){
if(i<j){//Swap
int tmp = x[i];
x[i] = x[j];
x[j] = tmp;
reverse(x, ++i, --j);//Recursive
}
}
Test:
int[] s = new int[]{1,2,3,4,5};
reverseArray(s);
System.out.println(Arrays.toString(s));//"5,4,3,2,1"
Recursive, O(n), no temporary Array needed.