class CArray
{
func printArray(_ arr: [Int]) {
let size: Int = arr.count;
var i: Int = 0;
while (i < size) {
print(arr[i], terminator: " ");
i += 1;
}
print(terminator: "\n");
}
func reorder(_ arr: inout[Int], _ indexes: [Int], _ i: Int) {
let size: Int = arr.count;
if (i < size) {
let data: Int = arr[i];
self.reorder(&arr, indexes, i + 1);
arr[indexes[i]] = data;
}
}
}
let obj: CArray = CArray();
var arr: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let indexes: [Int] = [1, 0, 4, 3, 2, 5, 9, 7, 8, 6];
obj.printArray(arr);
obj.printArray(indexes);
obj.reorder(&arr, indexes, 0);
obj.printArray(arr);
/*
run:
1 2 3 4 5 6 7 8 9 10
1 0 4 3 2 5 9 7 8 6
2 1 5 4 3 6 10 8 9 7
*/