public class MyClass {
public void print(int []arr) {
int size = arr.length;
for (int i = 0; i < size; i++) {
System.out.print(arr[i] + " ");
}
System.out.print("\n");
}
void reverse(int []arr, int start, int end) {
int temp = 0;
for (int i = start, j = end; i <= end && j > i; i++, j--) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
void split(int []arr, int split_point) {
int size = arr.length;
if (size <= 1 && split_point < 1 && split_point >= size) {
return;
}
// reverse first part
reverse(arr, 0, split_point - 1);
// reverse second part
reverse(arr, split_point, size - 1);
// reverse all array
reverse(arr, 0, size - 1);
}
public static void main(String args[]) {
MyClass obj = new MyClass();
int []arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int split_point = 3;
obj.split(arr, split_point);
obj.print(arr);
}
}
/*
run:
4 5 6 7 8 9 0 1 2 3
*/