class CArray {
print(arr: number[]) {
const size = arr.length;
let s = "";
for (let i = 0; i < size; i++) {
s += arr[i] + " ";
}
console.log(s);
}
reverse(arr: number[], start: number, end: number) {
for (let i = start, j = end; i <= end && j > i; i++, j--) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
split(arr: number[], split_point: number) {
const size = arr.length;
if (size <= 1 && split_point < 1 && split_point >= size) {
return;
}
// reverse first part
this.reverse(arr, 0, split_point - 1);
// reverse second part
this.reverse(arr, split_point, size - 1);
// reverse all array
this.reverse(arr, 0, size - 1);
}
}
const obj = new CArray();
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
let split_point = 3;
obj.split(arr, split_point);
obj.print(arr);
/*
run:
"4 5 6 7 8 9 0 1 2 3 "
*/